作者akk98 (陽光老哥 fighting!!!)
看板java
標題[問題]基礎JAVA 空字串消不掉的原因
時間Thu Aug 27 14:20:44 2020
/* ※狀況概述:
列出來的理論上是 [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://webptt.com/m.aspx?n=bbs/java/M.1598509247.A.1EE.html
※ 編輯: akk98 (42.72.179.43 臺灣), 08/27/2020 14:29:10
1F:→ LZN: 兩個問題, 1. 迴圈裡不要去新增刪除array裡的元素 08/27 14:54
2F:→ LZN: 2. 字串比對請用equals() 08/27 14:54
4F:→ tw11509: 注意,List.removeIf的999前還是會有空白,如上面提到的 08/27 15:26
5F:→ tw11509: 注意String是immutable 08/27 15:26
6F:→ akk98: 謝謝兩位大大 感恩 09/04 19:29