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

看板java作者 (虛空雷神獸)時間4年前 (2020/08/27 15:30), 編輯推噓1(100)
留言1則, 1人參與, 4年前最新討論串2/2 (看更多)
要篩選 Collection 裡面的元素 開一個新的容器去接是比較合理的做法 像你原本在 for (int i = 0; i < list.size(); i++) 裡面去 remove list 的元素 每 remove 一次長度就變短 到最後長度剩下 list.size() 只有 7 等於後面幾個元素都沒跑到 不知道你有沒有用 IDE, 如果用 IntelliJ 的話 他的提醒功能其實比 Eclipse 強不少 像這種錯誤就會被他抓出來 兩個版本給你參考一下 // 普通版 List<String> list = new ArrayList<>(); list.add("123"); list.add("333"); list.add(""); list.add("555"); list.add("666"); list.add(""); list.add("888"); list.add(" "); list.add(" "); list.add(" 999"); System.out.println("前" + list); List<String> newList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { String s = list.get(i).trim(); if (s.length() != 0) { newList.add(s); } } System.out.println("後" + newList); // lambda 版 List<String> list = new ArrayList<>(); list.add("123"); list.add("333"); list.add(""); list.add("555"); list.add("666"); list.add(""); list.add("888"); list.add(" "); list.add(" "); list.add(" 999"); System.out.println("前" + list); List<String> newList = list.stream().map((s) -> s.trim()) .filter((s) -> s.length() != 0) .collect(Collectors.toList()); System.out.println("後" + newList); -- ╔═ ═╦╦═════╦═════╗ ◤◤◤ ╠╣飛鳥ももこ╠═╗ ║ ║╚═════╝ ╚═╦═╣ ║╔══════╗╔═╩═╣ █◤ ╠╣Momoko Asuka╠╝ ║ ◣◢◣◢╩╩══════╩════╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.28.7 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1598513438.A.78E.html

09/04 19:27, 4年前 , 1F
感恩 我蠢了 忘了砍掉後 我的長度會變短 傻了 = =
09/04 19:27, 1F
文章代碼(AID): #1VHs4UUE (java)
文章代碼(AID): #1VHs4UUE (java)