我有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 />", "");
}
但这不起作用..我的代码有什么问题。?
答案 0 :(得分:3)
字符串在Java中是不可变的。 String.replace()
不会更改作为参数给出的字符串。相反,它会返回一个 new String对象,您需要处理该对象(例如,删除原始对象并将新的对象添加到列表中)。
答案 1 :(得分:3)
正如其他人已经报道的那样,String
是不可变的,因此对它们的任何操作都会返回 new 字符串。
这是一个解决同一个ArrayList
的解决方案,而没有制作新的解决方案:
ListIterator<String> it = list.listIterator();
while(it.hasNext()) {
it.set(it.next().replace("<br />", ""));
}
答案 2 :(得分:1)
String
不可变。调用String
中的大多数方法会导致创建新的String
答案 3 :(得分:1)
试试这个
List<String> newList = new ArrayList<String>();
for(String s : list){
newList.add(s.replace("<br />", ""));
}
现在,新列表包含所有之前没有<br/>
答案 4 :(得分:1)
字符串是不可变的,因此您必须捕获结果。
List<String> newList = new ArrayList<String>();
for(String s: list){
newList.add(s.replace("<br />", ""));
}