Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#字符串操作_C#_String - Fatal编程技术网

C#字符串操作

C#字符串操作,c#,string,C#,String,我有一个字符串: string str = "abc = def; \r\n header \r\n { \r\n def" 在这个字符串中,我想得到字符{前面的字符串,即“header” 我可以通过以下方式获得{的索引 str.indexOf('{') 但是,我们如何才能获得CodeCaster注释后编辑的“{”之前的字符串 string str=“abc=def;\r\n头\r\n{\r\n def” int length=str.IndexOf('{');//如果不匹配,则结果值为-1

我有一个字符串:

string str = "abc = def; \r\n header \r\n { \r\n def"
在这个字符串中,我想得到字符
{
前面的字符串,即“header”

我可以通过以下方式获得
{
的索引

str.indexOf('{')
但是,我们如何才能获得CodeCaster注释后编辑的“{”之前的字符串
string str=“abc=def;\r\n头\r\n{\r\n def”
int length=str.IndexOf('{');//如果不匹配,则结果值为-1
字符串结果=(长度<0)?string.Empty:str.SubString(0,长度);

在网站或本网站上搜索“C#get string before character”,你会发现很多提示。请参阅duplicate。
string result=str.SubString(0,str.indexOf('{'));
给定的重复链接给出了指定索引之前的所有字符。我只需要指定{字符串中的前一个字符串。然后你必须定义“刚好在”或“上一个字符串之前”。如果您可以用文字解释,通过编辑您的问题,您已经完成了编写适当代码的一半。是否类似于“以
{
开头的行之前的行(其中“行”是由
\r\n
分隔的字符串),忽略所有空白?您可能还希望编写或使用解析器,而不是依赖子字符串,尤其是当多个换行符、其他空格、注释和嵌套起作用时。@CodeCaster:是的。您的意思是正确的。我希望字符串位于字符的前面{'忽略所有空白字符。您能否尝试解释代码的作用,以及当输入字符串不包含您要查找的字符时会发生什么情况?str.SubString(0,length)将给出整个字符串,直到{正确。我希望字符串正好在{之前。在本例中,只有一个字符串I,,“header”。这是
str.SubString的替代方法(0,长度)
str.Remove(length)
(因为我们知道
str
值的长度至少为
1+length
)。
string str = "abc = def; \r\n header \r\n { \r\n def"

int length = str.IndexOf('{'); // if there is no match - the resulted value is -1

string result = (length < 0) ? string.Empty : str.SubString(0, length);