2012-07-11 21 views
7

String.Compare() với Hungary CultureInfo hoạt động không chính xác cho chuỗi cụ thể:String.Compare() với Hungary CultureInfo hoạt động không chính xác cho chuỗi cụ thể

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

Dĩ nhiên tôi cho rằng để có được "bình đẳng" câu trả lời, nhưng không phải vậy. Nếu tôi thay đổi chuỗi nó hoạt động đúng (ví dụ cho "abc" và "ABC" nó in "Bình đẳng") Dường như có vấn đề với các ký hiệu cụ thể.

+2

mmm ... kết quả là gì và bạn mong đợi điều gì? – Kek

+0

@MBen Thực tế là không, đó là câu hỏi của OP. – ken2k

+5

http://en.wikipedia.org/wiki/Hungarian_alphabet Dường như Ny là một lá thư ... Có lẽ người Hungary có thể trả lời bạn tốt hơn tôi ... Io Napot! – Kek

Trả lời

4

Bạn mong đợi điều gì? Bằng tiếng Hungari, "ny" được coi là một chữ cái. Nó có thể được viết như "ny", "Ny" hoặc "NY". Nhưng không bao giờ "nY". Điều này hoạt động như mong đợi:

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)); 

Bằng tiếng Hungari, họ không có chữ "y" ngoại trừ từ nước ngoài và một số tên. Nhưng khi bạn nói "nY", không có khả năng nào đây có thể là chữ "ny". Vì vậy, có thể .NET coi nó là hai chữ cái.

Có ai biết tiếng Hungary tốt không? Có thể thú vị khi nghe ý kiến ​​của họ. Nhưng tôi khá chắc chắn chuỗi "nY" không bao giờ có thể xuất hiện trong tiếng Hungary "tự nhiên".

+0

Tôi là người Hungary và bạn nói đúng. Chúng tôi có chữ cái "n", "ny" và "y" riêng biệt. "y" khá hiếm khi bạn nói trước đây. Chữ "ny" bao gồm hai âm, "n" và "y" - đừng nghĩ quá nhiều về logic. Trong những trường hợp này, âm thanh đầu tiên có thể ở thủ đô, như "Ny", không bao giờ "NY" hoặc "nY". Một số trường hợp khác: "Sz", "Ty", v.v. Ngoài ra "n" và "ny" được coi là các chữ cái khác nhau. Các chữ cái tiếng Anh tiêu chuẩn đầu tiên sau đó các chữ cái hungarian đặc biệt đến. Ví dụ: a, á, e, é, n, ny, t, ty, o, ó, ö, ő ... – Harb

Các vấn đề liên quan