我想删除仅包含空格字符的列表中的所有字符串。我尝试了以下代码,但未删除某些行:

List<String> getarray = /* ... */;

for (int i = 0; i < getarray.size(); i++) {
    if (getarray.contains(" ").getarray.contains(null)) {
        getarray.remove(i);
    } else {
        System.out.println("a: " + getarray.get(i));
    }
}


这仅对某些输入有效,有人可以帮助我理解为什么吗?

Here is a list of inputs which did not work as intended

最佳答案

首先,使用一些Iterator迭代并执行从ArrayList中删除元素的操作。

其次,要解决空字符串的问题,可以使用trim()和isEmpty()方法

试试下面的代码:

Iterator<String> it = getarray.iterator();
while (it.hasNext()) {
      String myValue = it.next();
      if (myValue.trim().isEmpty()) {
            it.remove();
      } else {
            System.out.println("a: " + myValue);
      }
}

10-06 14:43