我对此代码感到困惑。
string str = sample.indexof("a",0);
它正在运作。但是下面没有工作。
string str = sample.indexof("\",0);
答案 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);