0

我对这段代码感到困惑。

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

它正在工作。但下面不起作用。

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

2 回答 2

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。如果您可以使示例代码准确,这将有所帮助...)

于 2012-04-21T11:58:49.467 回答
1

因为 \ 是转义序列字符,您可以尝试以下选项之一来工作

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

或者

int i = sample.IndexOf(@"\", 0);
于 2012-04-21T11:58:37.597 回答