最近工作接到了某個公司的派遣~~真的遇到了以下的錯誤,
而這在Java語法裡面是有代表著不同的意義。

String的 三種比對 = =、equals、compareTo
1. = = 這種比對方式在其他語言中可以直接用來做字串的比對,
但是在Java 中這樣的比對是用來檢查,引用關聯記憶體使用的物件是否相同,
所以當 new 兩個String時,這樣的比對馬上就出問題了

2. equals 這個方法才是Java正確的字串比對方式,而對於物件需要做比對時,也是使用此方式,而數字是用 = =

3. compareTo 這種方式是用來做字串的比對大小時使用的,可不是用來比對是否相等,但是居然還是有看到有人拿來做比對用,雖然是可以,但我個人還是非常不建議這樣子用


這 是我目前看到有新手用了 1.3種方法來做比對,
雖然第3種方法可以,但在比對相同情形下還是不建議使用,
另外有Comarator 物件可以用來做比對排序

shikua 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • Eric
  • 可以請問一下為什麼不建議使用 compareTo 來比較兩字串自否相等嗎?
  • 因compareTo 是比較少見用來比對 字串,
    當然也是可以,不過我建議採用常見的用法,
    這樣就算是有新手加入專案也容易理解

    shikua 於 2010/08/10 09:28 回覆

  • kurtyu
  • 問題在於中文
    請參考String原始碼的討論 http://school.cnd8.com/java/jiaocheng/16808.htm
    如果是英文
    compareTo 一發現不相同 就立刻返回
    是沒有任何問題的
  • 感謝您的回覆摟!!

    shikua 於 2012/08/28 01:02 回覆