[问题]基础JAVA 空字串消不掉的原因

楼主: akk98 (akk)   2020-08-27 14:20:44
/* ※状况概述:
列出来的理论上是 [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);
作者: LZN (秋)   2020-08-27 14:54:00
两个问题, 1. 循环里不要去新增删除array里的元素2. 字串比对请用equals()
作者: tw11509 (John-117)   2020-08-27 15:23:00
https://i.imgur.com/bkU3kVr.jpg注意,List.removeIf的999前还是会有空白,如上面提到的注意String是immutable
楼主: akk98 (akk)   2020-09-04 19:29:00
谢谢两位大大 感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com