c# – string.Empty.StartsWith(((char)10781).ToString())总是
我试图处理以下角色:?(
http://www.fileformat.info/info/unicode/char/2a1d/index.htm)
如果你检查一个以这个字符开头的空字符串,它总是返回true,这没有任何意义!这是为什么? // visual studio 2008 hides lines that have this char literally (bug in visual studio?!?) so i wrote it's unicode instead. char specialChar = (char)10781; string specialString = specialChar.ToString(); // prints 1 Console.WriteLine(specialString.Length); // prints 10781 Console.WriteLine((int)specialChar); // prints false Console.WriteLine(string.Empty.StartsWith("A")); // both prints true WTF?!? Console.WriteLine(string.Empty.StartsWith(specialString)); Console.WriteLine(string.Empty.StartsWith(((char)10781).ToString())); 解决方法
您可以使用
ordinal StringComparison修复此错误:
来自MSDN文档:
char specialChar = (char)10781; string specialString = Convert.ToString(specialChar); // prints 1 Console.WriteLine(specialString.Length); // prints 10781 Console.WriteLine((int)specialChar); // prints false Console.WriteLine(string.Empty.StartsWith("A")); // prints false Console.WriteLine(string.Empty.StartsWith(specialString,StringComparison.Ordinal)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |