伊莉討論區

標題: 「已解決」Android 字串 equals()問題 [打印本頁]

作者: jackyo04    時間: 2018-9-12 04:17 PM     標題: 「已解決」Android 字串 equals()問題

本帖最後由 jackyo04 於 2018-9-12 05:39 PM 編輯

我在做字串判斷的時候遇到需要做字串比對的問題,於是就使用了equals這個功能,然後用Log來看有沒有進入我預想的功能裡,但不管我用什麼方式就是進不去,是我理解錯誤嗎?
以下是程式片段
  1. //狀況一:
  2. if(txt.equals("a")){
  3.    // 執行log
  4. }
  5. //狀況二:
  6. if("a".equals(txt)){
  7.    // 執行log
  8. }
  9. //狀況三:
  10. String s = "a";
  11. if(txt.equals(s)){
  12.    // 執行log
  13. }
  14. //狀況四:
  15. String s = "a";
  16. if(txt == s){
  17.    // 執行log
  18. }
複製代碼
用了四種狀況都完全無法進去判斷式裡面,不知道是不是我應用錯誤還是什麼怪問題...我是用在藍芽的部份,當收到指定的值時執行動作,我將藍芽部份拿掉測試就OK
也有用Toast確認該數值為字串...但..就是進不去判斷式

經過某位大大解釋,我遺漏了trim這部份..

作者: codewice    時間: 2018-9-12 11:08 PM

碎嘴一下,Android 裡面有個 TextUtils 的類別可以用。Java 裡面的字串比對一不小心會踩到雷,可以搜尋一下 stackoverflow 編號 513832 的問題
作者: jackyo04    時間: 2018-9-13 08:11 AM

codewice 發表於 2018-9-12 11:08 PM
碎嘴一下,Android 裡面有個 TextUtils 的類別可以用。Java 裡面的字串比對一不小心會踩到雷,可以搜尋一下 ...

TextUtils我要研究一下,因為藍芽傳輸是用Byte來傳,所以會有\r\n的問題存在,也常常被忽略掉,所以換型別要注意一下,轉成String一樣會存在\r\n的問題,這是我踩到的雷..
作者: z1090128    時間: 2018-9-13 03:15 PM

如果使用case會比較好嗎?這樣判斷的次數就不需要這麼多




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!