2012-11-02 75 views
3

比如如果我比較字符串「你好」和「世界」。compareTo()方法如何比較字符串?

它是如何知道你好於世界?

我唯一能想到的是,也許它使用ASCII表作爲參考?

感謝您的幫助!

+2

你看過[String API](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html)嗎?我敢打賭,那裏可以找到很多東西。編輯,是的,我是對的。這裏面全是拼出來的,這應該是你首先尋找類似問題的地方 - 在這裏問這類問題之前肯定是這樣。 –

+0

是不是「你好」比「世界」少? –

+3

詳細解釋[here](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareTo%28java.lang.String%29)。 –

回答

5

它比較了兩個字符串命名爲。 在這裏查詢String API

如果兩個字符串不同,則要麼它們在某個索引是兩個字符串有效的索引,或者 它們的長度不同,或者兩者都有不同 字符。如果它們在一個或多個索引位置具有不同的 字符,則令k爲最小的這樣的 索引;那麼位置k處的字符具有較小的值的字符串,如通過使用<運算符所確定的,按字母順序 在另一字符串之前。

2

所有大寫被前述小寫這樣:

"Be".compareTo("ay"); 

將返回一個負值,這意味着「小於」。

+0

以及如果我有超過2個字符串在列表中。比較如何進行?我的意思是指數明智(0,1)(1,2) – piechuckerr

+0

你所包含的代碼返回「-31」。 'compareTo'返回兩個字符串的非零ASCII差異。 –

+0

@GaurangTandon謝謝。編輯後。 – Mordechai