Ошибка IndexOf, когда строка содержит 'AA' - PullRequest
3 голосов
/ 16 августа 2011

Я столкнулся со странной проблемой. У меня есть строка со значением, содержащим 'AA' . Я пытаюсь найти IndexOf первого наполнения A . Когда я спрашиваю, содержит ли строка ("A") , она возвращает true. При использовании IndexOf («A») я получаю значение по умолчанию -1 ! (см. Рисунок ниже)

enter image description here

Пока я проверял, есть проблема только с ' A ' и ' a '. Помещая в строку 3 a , я получаю индекс числа 3, как будто первых двух не существует.

enter image description here

При добавлении дополнительных a к строке я снова получаю значение по умолчанию -1.

enter image description here

Я не знаю, что является причиной этого, у меня есть подозрение, что это как-то связано с какой-то настройкой языка. Я из Дании, и использование букв aa является синонимом å .

Кто-нибудь еще сталкивался с подобной проблемой или у вас есть предложение, как ее избежать?

Системная информация:

Windows 7 Ultimate (английский)

Visual Studio 10 Premium

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

'aa' обрабатывается как сущность, если культура da-DK. Вопрос вроде дубликатов, см. String StartsWith () с датским текстом .

0 голосов
/ 16 августа 2011

Хммм, я попробовал то же самое сейчас.Это работает ...

    static void XYZ()
    {
        string a = "aaa";
        string b = "AAA";

        if(a.Contains("a"))
        {
            Console.WriteLine(a.IndexOf("a"));
        }
        if(b.Contains("A"))
        {
            Console.WriteLine(b.IndexOf("A"));
        }
    }

Но не лучше ли искать "аа" и "аа"?Я могу говорить по-датски, и я знаю, что есть также одиночные а; -)

...