从字符串末尾删除所有<br/>

时间:2019-04-15 06:24:12

标签: java android

假设我有一个String,在字符串的结尾处有多个<br>标签,
如何一次性删除所有内容?
我尝试使用if(text.endsWith("<br>") text.replace("<br>", "");,但这只会删除所有其他之一。

4 个答案:

答案 0 :(得分:1)

如果只想在字符串末尾删除它们:

text = text.replaceAll("(<br>)*$", "");

必须使用$锚以确保它不会替换字符串中其他较早出现的内容。

如果需要,您可以不使用正则表达式来实现:

int a = text.length();
while (a >= "<br>".length() && text.regionMatches(a - "<br>".length(), "<br>", 0, "<br>".length())) {
  a -= "<br>".length();
}
text = text.substring(0, a);

答案 1 :(得分:1)

尝试一下,
text = text.replaceAll("<br>","").replaceAll("<br>","");

答案 2 :(得分:0)

我认为Java中没有特定的方法可以执行此操作。但是,您可以使用while循环来实现:

String text = "hello world <br><br><br>";
while (text.endsWith("<br>")) {
    text = text.substring(0, text.length() - 4);
}

答案 3 :(得分:0)

在这种情况下,您应该看一下Javadoc官方文档:

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)

您要查找的方法是公共String replaceAll(字符串正则表达式,字符串替换),它将替换所有出现的指定模式。 在您的情况下,应该是这样的:

fullText.replaceAll("<br>", ""),

其中fullText是包含要处理的所有文本的变量。

编辑:根据您的评论,我只想删除字符串末尾的br,并且假定 text 由多行组成。 由于replaceAll可以使用正则表达式,因此您应该可以执行以下操作:

fullText.replaceAll("<br>\\n", "\\n"),

编辑2 :我希望我能发表评论...请忽略我的回答,我想正确的答案是安迪·特纳。仅删除该行末尾的 br 似乎确实可以正常工作。