尽管子字符串存在,但找不到c#substring

时间:2012-01-27 14:35:45

标签: c# string contains indexof

我的字符串看起来像

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);
    }
}

1 个答案:

答案 0 :(得分:2)

拨打电话时很可能是一个问题。 string1.Contains( “DATA1”);将为您指定的字符串返回true。

包含区分大小写,因此您可能不小心输入了其中一个字母的错误大小写,或者在之前/之后添加了空格。