我遇到了一个奇怪的问题。我有一个包含'AA'值的字符串。 我想找到 IndexOf 第一个 A 。当我询问字符串包含(“A”)时,它返回true。使用 IndexOf(“A”)时,我会保持默认值 -1 ! (见下图)
到目前为止,我测试的是' A '和' a '只有问题。 当在字符串中放入3 a 时,我得到数字3的索引,就好像前两个不存在一样。
在字符串中添加额外的 a 时,我再次获得默认值-1。
我不知道造成这种情况的原因,我怀疑它是否与某些语言设置有关。我来自丹麦,使用字母 aa 是å的同义词。
是否有其他人遇到类似问题或有建议如何避免它?
系统信息:
Windows 7旗舰版(英文)
Visual Studio 10 Premium
答案 0 :(得分:2)
'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”不是最好吗?我会说丹麦语,我知道也有单一的; - )