我的HTML删除方法大部分都在使用。但是,在某些特殊情况下存在一个小问题。输入字符串会出现问题:
亚伯拉罕
<blah>
亚当萨维奇:我拒绝你的现实,代替我的 自己的。
代码会删除<blah>
标记就好了,但会在它之前和之后合并两个字符串,从而创建&#34; AbrahamAdam&#34;。我需要&#34; Abrah&#34;和&#34;亚当&#34;分开。
有什么想法吗?
答案 0 :(得分:0)
试试这个
public static String removeHTML(String justScanned) {
String newStr = "";
int length = readIn.length();
for (int i = 0; i < length; i++) {
if (readIn.charAt(i) == '<') {
flagForHTML = true;
newStr += " ";
}
if (readIn.charAt(i) == '>') {
flagForHTML = false;
newStr += " ";
} else {
if (!flagForHTML) {
newStr += readIn.charAt(i);
}
}
}
return new;
}
答案 1 :(得分:0)
试试这个。使用StringBuilder是因为它在构建字符串时比使用String更有效。
public static String removeHTML(String justScanned) {
StringBuilder new = new StringBuilder();
boolean insideTag = false;
for(int i =0; i < justScanned.length(); i++) {
char currentChar = justScanned.charAt(i);
if(currentChar == '<') {
insideTag = true;
} else if(currentChar == '>') {
insideTag = false;
} else {
if(! insideTag) {
new.append(currentChar);
}
}
}
return new.toString();
}
答案 2 :(得分:0)
试试这个:
str.replaceAll("\\<.*?\\>", " ")