gpt4 book ai didi

c# - 带有匈牙利 CultureInfo 的 String.Compare() 对于特定字符串不正确

转载 作者:太空狗 更新时间:2023-10-29 20:31:23 25 4
gpt4 key购买 nike

带有匈牙利 CultureInfo 的 String.Compare() 对于特定字符串不正确:

if (0 == String.Compare(@"ny", @"nY", true, new CultureInfo("hu-HU")))
Console.WriteLine("Equal");
else
Console.WriteLine("Not equal");

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

最佳答案

你会期待什么?在匈牙利语中,“ny”被视为一个 字母。它可以写成“ny”、“Ny”或“NY”。但从来没有“nY”。这按预期工作:

  var hu = new CultureInfo("hu-HU");
Console.WriteLine(String.Compare("Ny", "NY", true, hu));
Console.WriteLine(String.Compare("ny", "NY", true, hu));
Console.WriteLine(String.Compare("ny", "Ny", true, hu));

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

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

关于c# - 带有匈牙利 CultureInfo 的 String.Compare() 对于特定字符串不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11428571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com