[問題]基礎JAVA 空字串消不掉的原因

看板java作者 (陽光老哥 fighting!!!)時間4年前 (2020/08/27 14:20), 4年前編輯推噓0(006)
留言6則, 3人參與, 4年前最新討論串1/2 (看更多)
/* ※狀況概述: 列出來的理論上是 [123,333,555,666,888,999] 但實際上出來的是 [123,333,555,666,888,,, 999] 有用過trim 跟replace 但沒道理 前面的空字串可以剔除 後面的 無法剔除...原本是全部的"" or " " 之類的 都處理過 不知道是甚麼原因 或是邏輯 可否請大大指導 */ 程式碼: List list = new ArrayList<String>(); list.add("123"); list.add("333"); list.add("".replaceAll(" +","")); list.add("555"); list.add("666"); list.add(""); list.add("888"); list.add(" ".replaceAll(" +","")); list.add(" ".replaceAll(" +","")); list.add(" 999"); System.out.println("前"+list); for(int i=0;i<list.size();i++){ // if(((String) list.get(i)).replaceAll(" +","")==""){ // list.remove(i); // } if(((String) list.get(i)).replaceAll(" ", "")==""){ System.out.println("有一個"+i+"值是"+list.get(i)); list.remove(i); } } System.out.println("後"+list); -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.179.43 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1598509247.A.1EE.html ※ 編輯: akk98 (42.72.179.43 臺灣), 08/27/2020 14:29:10

08/27 14:54, 4年前 , 1F
兩個問題, 1. 迴圈裡不要去新增刪除array裡的元素
08/27 14:54, 1F

08/27 14:54, 4年前 , 2F
2. 字串比對請用equals()
08/27 14:54, 2F

08/27 15:23, 4年前 , 3F

08/27 15:26, 4年前 , 4F
注意,List.removeIf的999前還是會有空白,如上面提到的
08/27 15:26, 4F

08/27 15:26, 4年前 , 5F
注意String是immutable
08/27 15:26, 5F

09/04 19:29, 4年前 , 6F
謝謝兩位大大 感恩
09/04 19:29, 6F
文章代碼(AID): #1VHr2_7k (java)
文章代碼(AID): #1VHr2_7k (java)