2012-04-21 95 views
0

我对这段代码感到困惑,任何人都可以帮助我。在字符串c中查找单个字符的索引#

string str = sample.indexof("a",0); 

它的工作。但下面不起作用。

string str = sample.indexof("\",0); 
+0

在这两个查询替换字符串与int becuase返回类型indexof是索引值 – 2012-04-21 12:01:24

回答

7

你一定要逃逸字符串和字符反斜杠C# - 或使用逐字字符串文字。所有这些都将工作:

int index = sample.IndexOf("\\", 0); 
int index = sample.IndexOf(@"\", 0); 
int index = sample.IndexOf('\\', 0); 

或者没有指定的初始索引,如果你从一开始就在寻找反正:

int index = sample.IndexOf("\\"); 
int index = sample.IndexOf(@"\"); 
int index = sample.IndexOf('\\'); 

个人,如果你只是我会用这些最后寻找单个字符 - 更清楚的是,它确实是恰好一个字符。 (这可能是稍微更高效的太多,但清晰度更重要)

(注意,C#是区分大小写 - 它IndexOf,不indexof还要注意它返回int,而不是它有助于string如果可以的话。使您的示例代码准确...)

1

因为\是转义序列字符,你可以尝试一个下面的选项的工作

int i = sample.indexof("\\",0) 

int i = sample.IndexOf(@"\", 0);