解析方法和特殊情况

时间:2014-09-12 02:42:18

标签: java

我的HTML删除方法大部分都在使用。但是,在某些特殊情况下存在一个小问题。输入字符串会出现问题:

  

亚伯拉罕<blah>亚当萨维奇:我拒绝你的现实,代替我的       自己的。

代码会删除<blah>标记就好了,但会在它之前和之后合并两个字符串,从而创建&#34; AbrahamAdam&#34;。我需要&#34; Abrah&#34;和&#34;亚当&#34;分开。

有什么想法吗?

3 个答案:

答案 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("\\<.*?\\>", " ")