我想用此字符串
中的“th”替换所有“td”String head = "<tr>\n<td> </td>\n<td> </td>\n<td>Libelle</td>\n"
+ "<td>Nom Table</td>\n<td>Groupe</td>\n<td> </td>\n</tr>\n"
我试图使用:
head.replace("<td>", "<th>");
head.replace("</td>", "</th>");
但它不起作用。
你能帮助我吗?
答案 0 :(得分:3)
String.replace(..)
将返回结果字符串,因此您需要将其设置回来
head = head.replace("<td>", "<th>");
head = head.replace("</td>", "</th>");
答案 1 :(得分:1)
在这种情况下,您可以使用replace
方法和replaceAll
,因为您没有使用任何正则表达式,并且您无法进行嵌套修改(类似"aaa".replace("a","b")
)。
此外,修改的String由方法返回(而不是隐式修改),因此您应该重新分配head
值。
所以,解决方案应如下所示:
String head = "<tr>\n<td> </td>\n<td> </td>\n<td>Libelle</td>\n<td>Nom Table</td>\n<td>Groupe</td>\n<td> </td>\n</tr>\n";
head = head.replaceAll("<td>", "<th>");
head = head.replaceAll("</td>", "</th>");
System.out.println(head);
<强> EDIT1:强>
如果您只想修改这些标签(并且始终相同),则可以使用replace method
。否则,您应该使用replaceAll
方法,因为它可以包含正则表达式。您可以在Difference between String replace() and replaceAll()
replace
和replaceAll
之间差异的更多信息
答案 2 :(得分:0)
你可以有一行。
head = head.replaceAll("td>", "th>");
答案 3 :(得分:0)
这可以解决空<td /><td/>
标记等情况以及td
标记包含class=\"abc\"
等属性的问题:
String head = ""<td class=\"abc\">outdoor</td><td />"";
head = head.replace("<td", "<th");
head = head.replace("</td", "</th");
System.out.println(head);
答案 4 :(得分:0)
replace方法返回一个新字符串。
String s =“hi hi hi”;
String f = s.replace(“hi”,“bye”);
System.out.println(s +“----”+ f);
打印:嗨嗨嗨----再见再见