2012-04-21 82 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);