在.Net(C#)中
"haiwa゛海娃".IndexOf("haiwa") 返回是-1,不知道你有没有碰到过,但这个问题让我晕了很久,今天终于找到解决方法了!
"haiwa゛海娃".IndexOf("haiwa",StringComparison.Ordinal) 就返回0了
StringComparison 枚举 是.NET Framework 2.0 版中是新增的。
“゛”是个特殊字符,有这方法影响的,还有很多!
更多IndexOF特殊字符(http://d.hatena.ne.jp/siokoshou/20091111)示例:
using System;
class P
{
static void Main()
{
Console.WriteLine( "AA".IndexOf("〇A") ); // 0
Console.WriteLine( "AA".IndexOf("〇") ); // 0
Console.WriteLine( "A〇A".IndexOf("AA") ); // 0
Console.WriteLine( "〇A〇A".IndexOf("AA") ); // 1
Console.WriteLine( "〇A〇A".IndexOf("〇A") ); // 1
Console.WriteLine( "〇A〇A".LastIndexOf( "〇A" ) ); // 3
Console.WriteLine();
Console.WriteLine( "AA".IndexOf( "〇A", StringComparison.Ordinal ) ); // -1
Console.WriteLine( "AA".IndexOf( "〇", StringComparison.Ordinal ) ); // -1
Console.WriteLine( "A〇A".IndexOf( "AA", StringComparison.Ordinal ) ); // -1
Console.WriteLine( "〇A〇A".IndexOf( "AA", StringComparison.Ordinal ) ); // -1
Console.WriteLine( "〇A〇A".IndexOf( "〇A", StringComparison.Ordinal ) ); // 0
Console.WriteLine( "〇A〇A".LastIndexOf( "〇A", StringComparison.Ordinal ) ); // 2
Console.ReadKey();
}
}