为什么当字符串中有反斜杠“\”时IndexOf会失败?
string tmpString = "acg2xs5d.dui";
string tmpString2 = @"c:\acg2xs5d.dui";
MessageBox.Show(tmpString.IndexOf(@tmpString2).ToString());
这返回-1;无论如何。
如果我将tmpString2更改为“acg2xs5d.dui”并删除“c:\”,则会按预期返回0.
似乎“\”导致它给出错误的结果“-1”。
为什么会这样,我该如何解决/陷阱?
答案 0 :(得分:15)
你需要使用
tmpString2.IndexOf(@tmpString)
tmpString.IndexOf(@tmpString2)
除订单外一切正常。 “\”不是转义字符,因为你在字符串之前使用“@”。
答案 1 :(得分:-2)
在搜索之前在字符串中包含一个斜杠。使用以下代码:
string tmpString = "acg2xs5d.dui";
string tmpString2 = "c:\\acg2xs5d.dui";
int a = tmpString2.IndexOf(tmpString); //returns 3