我有一个像
这样的字符串String str = "<tr>\n
<td class="tg-s6z2">@w1d1p7</td>\n
<td class="tg-s6z2">@w1d2p7</td>\n
<td class="tg-s6z2">@w1d3p7</td>\n
<td class="tg-s6z2">@w1d4p7</td>\n
<td class="tg-s6z2">@w1d5p7</td>\n
<td class="tg-s6z2">@w1d6p7</td>\n
</tr>\n"; //removed all backslashes (escapes) for readability.
我需要的是:删除包含例如@ w1d1p7。结果是:
String str = "<tr>\n
<td class="tg-s6z2">@w1d2p7</td>\n
<td class="tg-s6z2">@w1d3p7</td>\n
<td class="tg-s6z2">@w1d4p7</td>\n
<td class="tg-s6z2">@w1d5p7</td>\n
<td class="tg-s6z2">@w1d6p7</td>\n
</tr>\n";
谢谢。
==编辑==
问题是:我可以找到&#34; @ w1d1p7&#34;的索引。如何删除具有此索引的整行?
答案 0 :(得分:1)
您希望根据换行符拆分字符串,然后查看每行是否有不需要的文本。像这样......
public class HelloString {
public static void main(String[] args) {
String str = "<tr>\n"+
"<td class=\"tg-s6z2\">@w1d1p7</td>\n"+
"<td class=\"tg-s6z2\">@w1d2p7</td>\n"+
"<td class=\"tg-s6z2\">@w1d3p7</td>\n"+
"<td class=\"tg-s6z2\">@w1d4p7</td>\n"+
"<td class=\"tg-s6z2\">@w1d5p7</td>\n"+
"<td class=\"tg-s6z2\">@w1d6p7</td>\n"+
"</tr>\n";
StringBuilder builder = new StringBuilder();
String[] split = str.split("\\r?\\n|\\r");
for (String s : split) {
if (!s.contains("w1d1p7")) {
builder.append(s);
}
}
System.out.println(builder.toString());
}
}
答案 1 :(得分:1)
正如我在上面的评论中提到的,如果你想对HTML内容进行任何严格的操作,你应该使用HTML / XML解析器,而不是基本的字符串函数。话虽这么说,对于您的特定字符串,您可以搜索以下模式,只需用空字符串替换:
<td class=\"tg-s6z2\">@w1d1p7</td>\n
代码段:
String str = "<tr>\n" +
"<td class=\"tg-s6z2\">@w1d1p7</td>\n" +
"<td class=\"tg-s6z2\">@w1d2p7</td>\n" +
"<td class=\"tg-s6z2\">@w1d3p7</td>\n" +
"<td class=\"tg-s6z2\">@w1d4p7</td>\n" +
"<td class=\"tg-s6z2\">@w1d5p7</td>\n" +
"<td class=\"tg-s6z2\">@w1d6p7</td>\n" +
"</tr>\n";
str = str.replaceAll("<td class=\"tg-s6z2\">@w1d1p7</td>\n", "");
System.out.println(str);
请注意String#replaceAll()
具有正则表达式功能,因此如果您的替换要求比此更复杂,我们可能也可以容纳它们。
<强>输出:强>
<tr>
<td class="tg-s6z2">@w1d2p7</td>
<td class="tg-s6z2">@w1d3p7</td>
<td class="tg-s6z2">@w1d4p7</td>
<td class="tg-s6z2">@w1d5p7</td>
<td class="tg-s6z2">@w1d6p7</td>
</tr>
在这里演示:
答案 2 :(得分:0)
我会使用str.split(“/ n”)[你在每个/ n分开]将String拆分成一个ArrayList
然后只删除你不需要的行