4

为什么当字符串中有反斜杠“\”时IndexOf会失败?

string tmpString = "acg2xs5d.dui";

string tmpString2 = @"c:\acg2xs5d.dui"; 

MessageBox.Show(tmpString.IndexOf(@tmpString2).ToString());


这将返回 -1;无论。

如果我将 tmpString2 更改为“acg2xs5d.dui”并删除“c:\”,它将按预期返回 0。

似乎“\”导致它给出“-1”的错误结果。

为什么会这样,我该如何解决/陷阱?

4

2 回答 2

16

你只需要使用 tmpString2.IndexOf(@tmpString)

代替 tmpString.IndexOf(@tmpString2)

一切都是对的,除了顺序。“\”不是转义字符,因为您在字符串前使用了“@”。

于 2012-08-03T03:34:09.170 回答
-2

搜索前在字符串中再包含一个斜杠。使用以下代码:

string tmpString = "acg2xs5d.dui"; 
string tmpString2 = "c:\\acg2xs5d.dui";
int a = tmpString2.IndexOf(tmpString); //returns 3
于 2012-08-03T03:31:43.567 回答