当字符串包含'AA'时IndexOf bug

时间:2011-08-16 09:24:37

标签: string visual-studio-2010 indexof

我遇到了一个奇怪的问题。我有一个包含'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旗舰版(英文)

Visual Studio 10 Premium

2 个答案:

答案 0 :(得分:2)

如果文化是da-DK,则

'aa'作为实体处理。问题有点重复,请参阅String StartsWith() issue with Danish text

答案 1 :(得分:0)

嗯,我现在已经尝试过了。它有效......

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

但是,选择“aa”和“AA”不是最好吗?我会说丹麦语,我知道也有单一的; - )