IndexOf
函数应用于字符串时返回 -1
,但是确实存在匹配项。
string sUpperName = "PROGRAMOZÁSI NYELVEK II. ADA EA+GY. (BSC 08 A)";
string sUpperSearchValue = "N";
sUpperName.IndexOf(sUpperSearchValue); // Returns -1
sUpperSearchValue = "NY";
sUpperName.IndexOf(sUpperSearchValue); // Returns 13
sUpperName[13]; // 78 'N'
sUpperSearchValue[0]; // 78 'N'
sUpperName[13] == sUpperSearchValue[0]; // true
你知道为什么它能找到"NY"
但是无法单独找到"N"
吗?如果我搜索字符串中的其他字母,它可以找到它们,但不能找到"N"
。同样的问题也会出现在小写情况下。
如果我输入" N"
也无法匹配,在" NY"
时可以匹配成功。
控制台中的截图
NY
中的N
复制到sUpperSearchValue
中吗?(实际上是ctrl+c,ctrl+v)。 - Jeroen VannevelN
是来自拉丁字母表,而在另一种情况下则来自匈牙利(这只是猜测)。如果是这种情况,它们是不同的字符,并且可以解释这种行为。 - Tasos K.