在字符串c#中查找单个字符的索引

时间:2012-04-21 11:56:56

标签: c# string

我对此代码感到困惑。

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

它正在运作。但是下面没有工作。

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

因为\是转义序列字符,您可以尝试使用以下某个选项来工作

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

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