Re: [問題]基礎JAVA 空字串消不掉的原因
要篩選 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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章