【发布时间】:2012-01-27 14:35:44
【问题描述】:
我的字符串看起来像
string1 = "~01301~^~DATA1,DATA2 DATA3~^15.87^717^0.85^81.11^2.11^0.06^0"
string2 = "~01341~^~DATA3,DATA2 DATA1 DATA4~^15.87^717^0.85^81.11^2.11^0.06^0"
string3 = "~01347~^~DATA1 DATA2,DATA3~^15.87^717^0.85^81.11^2.11^0.06^0"
等等。
在这些字符串中,我需要找出哪些字符串包含“DATA1”子字符串。在 C# 中, contains - indexOf - lastIndexOf 方法无法在 string1 中找到 DATA1,但它们都在 string2 和 string3 中找到 DATA1。
这可能是什么原因?第一个 DATA1 用波浪号和逗号包围,但我想这些不应该影响还是我错了?
编辑: 代码的相关部分是微不足道的,这就是我没有发布它的原因。但这里仍然是代码的相关部分:
while((line = isoFileReader.ReadLine())!=null)
{
if (line.IndexOf(input)!=-1)
{
matchList.Add(line);
}
}
或
while((line = isoFileReader.ReadLine())!=null)
{
if (line.Contains(input))
{
matchList.Add(line);
}
}
【问题讨论】:
-
贴出你的代码,否则很难说
-
你能显示你用于 lastIndexOf 的确切代码吗?
-
你能发布你使用 String.Substring/IndexOf 的确切代码吗?
-
在调试器中查看string1,仔细分析字符,你可能会发现一些你看不到的隐藏字符。
-
刚刚在我的身上测试过,它按预期工作。该错误必须在您的代码中的其他位置。您可能需要显示更多代码。
标签: c# string contains indexof