字符串格式化删除标记后的所

时间:2012-05-04 13:26:53

标签: java html string html-table

我有一个包含表格的HTML字符串 但是在某些情况下,</table>标记后面会有字符 我想删除字符串中</table>标记后的所有内容 关于如何用Java做这个的任何想法?

4 个答案:

答案 0 :(得分:3)

假设str是此字符串,您可以执行以下操作:

str = str.replaceAll("</table>.*","</table>");

答案 1 :(得分:1)

使用regular expressions作为@Andrew Logvinov建议。

  

str.replaceAll("</table>.*","</table>");

这意味着:将文字字符串"</table>"与任何字符.一起重复零次或多次*,并将其替换为文字字符串"</table>" < / p>

请注意,此方法替换所有(因此它需要第一个匹配并删除字符串的其余部分),因此如果您有多个表或嵌套表,则这将无效。学习使用正则表达式来获得更好的解决方案。 (或者只使用indexOf以及String类中的任何方法)

答案 2 :(得分:0)

String endTableTag = "</table>";
String html = "<table><tr><td>Hello</td></tr></table>yadayadayada";
int index = html.lastIndexOf(endTableTag);
String cleanedup;
if (index>-1) {
    // Removes everything after the last table end tag
    cleanedup = html.substring(0, index + endTableTag.length());
} else {
    cleanedup = html;
}
System.out.println(cleanedup);

答案 3 :(得分:0)

String test = "testabc</table>anothertest</table>hahhah";
test = str.substring(0, (str.lastIndexOf("</table>")+"</table>".length()));
System.out.println(str.substring(0, (str.lastIndexOf("</table>")+"</table>".length())));
System.out.println(test);

或测试它......

test.replaceAll("</table>.*","</table>"); would be better! ;) 

很好,但是如果你有更多1,你可能会遇到问题! ;)所以最好使用“lastIndexOf()”imho!