1

我有一个List<String>这样的

List<String> list = new ArrayList<String>();

列表中的某些元素在<br />字符串的末尾有标签,例如,当我打印上面的列表时,它给了我以下结果

`[java, struts, php, ajax , javascript<br />, python, mysql, spring,<br />, hibernate, drupal<br />]`

我想删除<br />列表中每个字符串末尾的

我试图替换 html 标记的代码是,

for(String s: list){
s.replace("<br />", "");
}

但这不起作用..我的代码有什么问题。?

4

5 回答 5

3

字符串在 Java 中是不可变的。String.replace()不会更改作为参数给出的字符串。相反,它返回一个的String 对象,您需要对其进行处理(例如,删除原始对象并将新对象添加到您的列表中)。

于 2013-06-11T07:55:48.773 回答
3

正如其他人已经报道的那样,Strings 是不可变的,因此对它们的任何操作都会返回一个字符串。

这是一个相同的解决方案ArrayList,无需制作新的解决方案:

ListIterator<String> it = list.listIterator();
while(it.hasNext()) {
    it.set(it.next().replace("<br />", ""));
}
于 2013-06-11T08:30:06.920 回答
1

String是不可变的。调用大多数方法会String导致String创建一个新方法

于 2013-06-11T07:55:16.347 回答
1

尝试这个

List<String> newList = new ArrayList<String>();
for(String s : list){
  newList.add(s.replace("<br />", ""));
}

现在新列表包含所有以前的值,没有<br/>

于 2013-06-11T07:55:48.847 回答
1

字符串是不可变的,因此您必须捕获结果。

List<String> newList = new ArrayList<String>();

for(String s: list){
  newList.add(s.replace("<br />", ""));
}
于 2013-06-11T08:00:46.343 回答