2013-02-20 40 views
1

結果我試圖做一個字符串比較的「蘇黎世」和「蘇黎世」 事情是這樣的:字符串比較:比較「蘇黎世」和「蘇黎世」在-1

int compareResult = String.Compare(zürich, zurich); 

所以會發生什麼是它返回-1,這導致了一個問題,因爲我使用compareResult作爲if-else以後的版本。

有人能指出我爲什麼會發生這種事情的正確方向。在比較「蘇黎世」之前,我需要先清理一下嗎?還是其他的東西?

+3

您使用哪種語言?這具有重要意義。除此之外,是「蘇黎世」還是「蘇黎世」變量或字符串? – 2013-02-20 12:45:33

+0

如果你使用的是Java,請查看java.text.Collat​​or:http://docs.oracle.com/javase/1.4.2/docs/api/java/text/Collat​​or.html – devrys 2013-02-20 12:48:37

+0

抱歉我使用c# – someguy 2013-02-21 04:58:02

回答

0

你使用的方法很好,但字符串實際上是不同的。

所以,爲了使你的方式這種比較,你需要:

  1. 決定,如果這就是你想要使用U和其他「特殊」拉丁字符來看待他們,因爲他們的每一個對比簡單的字符。 即在每次你看到ü時,它將把它當作一個「U」
  2. 如果是這樣,你需要做預處理兩個字符串,並定期來替換全部的特殊字符。 這裏存在關於它的另一個線程: How can I remove accents on a string?

希望它幫助。