c # подстрока не найдена, хотя подстрока существует - PullRequest
0 голосов
/ 27 января 2012

У меня есть строки, которые выглядят как

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 # методы методы - indexOf - lastIndexOf не могут найти DATA1 в строке1, но все они находят DATA1 в строке2 и строке3.

В чем может быть причина этого? Сначала DATA1 окружен тильдой и запятой, но я думаю, что они не должны влиять или я не прав?

EDIT: Соответствующая часть кода тривиальна, поэтому я не опубликовал ее. Но все же вот соответствующая часть кода:

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 Ответ

2 голосов
/ 27 января 2012

Скорее всего проблема при звонке.string1.Contains ( "data1");вернет true для указанной вами строки.

Содержит регистрозависимо, поэтому, возможно, вы случайно набрали неверный регистр одной из букв или добавили пробел до / после.

...