用java String替换所有td的标签

时间:2017-07-07 09:36:08

标签: java

我想用此字符串

中的“th”替换所有“td”
String head = "<tr>\n<td>&nbsp;</td>\n<td>&nbsp;</td>\n<td>Libelle</td>\n" 
                      + "<td>Nom Table</td>\n<td>Groupe</td>\n<td>&nbsp;</td>\n</tr>\n"

我试图使用:

head.replace("<td>", "<th>");
head.replace("</td>", "</th>");

但它不起作用。

你能帮助我吗?

5 个答案:

答案 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>&nbsp;</td>\n<td>&nbsp;</td>\n<td>Libelle</td>\n<td>Nom Table</td>\n<td>Groupe</td>\n<td>&nbsp;</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()

中找到有关replacereplaceAll之间差异的更多信息

答案 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);

打印:嗨嗨嗨----再见再见