微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – String.Compare()与匈牙利CultureInfo工作不正确的特定字符串

String.Compare()与匈牙利CultureInfo工作不正确的特定字符串:
if (0 == String.Compare(@"ny",@"nY",true,new CultureInfo("hu-HU")))
  Console.WriteLine("Equal");
else
  Console.WriteLine("Not equal");

当然我想要得到“平等”答案,但事实并非如此.
如果我更改字符串它正常工作(例如“abc”和“ABC”它打印“等于”)
这似乎是特定符号的问题.

解决方法

你会期待什么?在匈牙利语中,“ny”被认为是一个字母.它可以写成“ny”,“Ny”或“NY”.但从来没有“nY”.这按预期工作:
var hu = new CultureInfo("hu-HU");
  Console.WriteLine(String.Compare("Ny","NY",hu));
  Console.WriteLine(String.Compare("ny","Ny",hu));

在匈牙利语中,除了外来词和一些名字外,他们没有字母“y”.但是当你说“nY”时,这不可能是“ny”字母.所以也许.NET将它视为两个字母.

有谁知道匈牙利语吗?听到他们的意见可能很有意思.但我很确定字符串“nY”永远不会出现在“自然”匈牙利语中.

原文地址:https://www.jb51.cc/csharp/100581.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐