Java ArrayList - 替换字符串 ArrayList 中的特定字母或字符?

Java ArrayList - Replace a specific letter or character within an ArrayList of Strings?

我正在尝试 replace/remove 字符串 ArrayList 中的某些字符。这是我已经尝试过的代码:

for (int i = 0; i < newList.size(); i++) {
            if (newList.get(i).contains(".")) {
                newList.get(i).replace(".", "");
            }
        }

我尝试遍历 ArrayList,如果任何元素包含“.”,则将其替换为空。例如,如果我的 ArrayList 中的一个词是“Works.”,那么结果输出将是“Works”。不幸的是,该代码段似乎无法正常运行。我做了类似的事情来删除任何包含数字的元素并且它工作正常,但是我不确定在仅替换 String 中的单个字符同时仍然保留 ArrayList 元素时是否需要使用特定的语法或方法。

newList.get(i).replace(".", "");

这不会更新列表元素 - 您构造替换的字符串,但随后丢弃该字符串。

您可以使用 set:

newList.set(i, newList.get(i).replace(".", ""));

或者您可以使用 ListIterator:

ListIterator<String> it = newList.listIterator();
while (it.hasNext()) {
  String s = it.next();
  if (s.contains(".")) {
    it.set(s.replace(".", ""));
  }
}

但更好的方法是使用 replaceAll,无需显式循环:

newList.replaceAll(s -> s.replace(".", ""));

也不需要检查 contains:如果搜索字符串不存在,replace 将不会执行任何操作。