通过第一个和最后一个字符删除一部分字符串?

时间:2012-05-04 08:28:08

标签: java android string

由于查询远程XML Feed,我收到了一个HTML字符串。我使用结果将文本设置为TextView。问题是字符串包含TextView元素不支持的HTML注释标记。

现在,我需要一种方法来通过指示要删除的部分来删除(substring)结果字符串。我不能通过开始和结束位置工作,但我必须使用开始和结束字符串模式(<!--作为开始,-->作为结束)。

我该怎么做?

5 个答案:

答案 0 :(得分:1)

也许使用这个:

String str = "your html string";
int start = str.indexOf("<!--");
int end = str.indexOf("-->");
str = str.replace(str.substring(start, (end - start)), "");

答案 1 :(得分:1)

我在这里找到了这个。我相信,因为android是一个标签,所以答案是相关的。

android.text.Html.fromHtml(instruction).toString()

Remove HTML tags from a String

答案 2 :(得分:1)

您可以使用正则表达式,例如

    String input = "<!-- \nto be removed -->hello <!-- to be removed-->world";
    Pattern pattern = Pattern.compile("<!--.*?-->", Pattern.DOTALL | Pattern.UNICODE_CASE | Pattern.MULTILINE);
    Matcher matcher = pattern.matcher(input);
    StringBuilder builder = new StringBuilder();
    int lastIndex = 0;
    while (matcher.find()) {
        builder.append(input.substring(lastIndex, matcher.start()));
        lastIndex = matcher.end();
    }
    builder.append(input.substring(lastIndex));
    System.out.println(builder);

答案 3 :(得分:0)

您也可以使用HTML.fromHTML

答案 4 :(得分:0)

您可以使用Html.fromHtml()方法在TextView中使用html格式的文字,例如:

CharSequence text = Html.fromHtml("before <!--comment--><b>after</b>");
myTextView.setText(text);

TextView现在将文本“在之后”之前。