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
将不会执行任何操作。
我正在尝试 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
将不会执行任何操作。