3

我遇到了一个奇怪的问题。我有一个字符串,其值包含'AA'。我试图找到IndexOf第一个 accouring A。当我询问字符串是否包含(“A”)时,它返回 true。使用IndexOf("A")时,我不断获得默认值-1(见下图)

在此处输入图像描述

到目前为止,我测试只有' A '和' a '有问题。将 3 a放入字符串中时,我得到数字 3 的索引,就好像前两个不存在一样。

在此处输入图像描述

向字符串添加额外的 a时,我再次获得默认值 -1。

在此处输入图像描述

我不知道是什么原因造成的,我怀疑它以某种方式与某些语言设置有关。我来自丹麦,字母aa的使用是å的同义词。

有没有其他人遇到过类似的问题或有如何避免它的建议?

系统信息:

Windows 7 旗舰版(英文版)

Visual Studio 10 高级版

4

2 回答 2

2

如果文化是 da-DK,则将“aa”作为实体处理。这个问题有点重复,请参阅String StartsWith() issue with Danish text

于 2011-08-16T09:34:48.260 回答
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”不是最好的吗?我会说丹麦语,而且我知道也有单个 a ;-)

于 2011-08-16T09:34:50.030 回答