Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过第一个和最后一个字符删除字符串的一部分?_Java_Android_String - Fatal编程技术网

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

Java 通过第一个和最后一个字符删除字符串的一部分?,java,android,string,Java,Android,String,通过查询远程XML提要,我得到了一个HTML字符串。我使用结果将文本设置为TextView。问题是字符串包含HTML注释标记,TextView元素不支持这些标记 现在,我需要一种通过指示要删除的部分来删除(子字符串)结果字符串的方法。我不能通过开始和结束位置工作,但我必须使用开始和结束字符串模式(作为结束) 我如何才能做到这一点?也许可以使用以下方法: String str = "your html string"; int start = str.indexOf("<!--"); int

通过查询远程XML提要,我得到了一个HTML字符串。我使用结果将文本设置为
TextView
。问题是字符串包含HTML注释标记,
TextView
元素不支持这些标记

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

我如何才能做到这一点?

也许可以使用以下方法:

String str = "your html string";
int start = str.indexOf("<!--");
int end = str.indexOf("-->");
str = str.replace(str.substring(start, (end - start)), "");
String str=“您的html字符串”;
int start=str.indexOf(“”);
str=str.replace(str.substring(start,(end-start)),“”);
或许可以使用以下方法:

String str = "your html string";
int start = str.indexOf("<!--");
int end = str.indexOf("-->");
str = str.replace(str.substring(start, (end - start)), "");
String str=“您的html字符串”;
int start=str.indexOf(“”);
str=str.replace(str.substring(start,(end-start)),“”);

你也可以使用
HTML.fromHTML
你也可以使用
HTML.fromHTML
我在这里找到了这个。我相信,由于android是一个标签,答案将是相关的

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

.

我在这里找到了这个。我相信,由于android是一个标签,答案将是相关的

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

.

您可以使用
Html.fromHtml()
方法在
文本视图中使用Html格式的文本,例如:

CharSequence text = Html.fromHtml("before <!--comment--><b>after</b>");
myTextView.setText(text);
CharSequence text=Html.fromHtml(“前后”);
myTextView.setText(文本);

TextView现在将有文本“beforeafter

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

CharSequence text = Html.fromHtml("before <!--comment--><b>after</b>");
myTextView.setText(text);
CharSequence text=Html.fromHtml(“前后”);
myTextView.setText(文本);

文本视图现在将有文本“beforeafter

您可以使用常规express,例如

    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);
String input=“hello world”;
Pattern=Pattern.compile(“,Pattern.DOTALL | Pattern.UNICODE|u CASE | Pattern.MULTILINE);
Matcher Matcher=pattern.Matcher(输入);
StringBuilder=新的StringBuilder();
int lastIndex=0;
while(matcher.find()){
append(input.substring(lastIndex,matcher.start());
lastIndex=matcher.end();
}
append(input.substring(lastIndex));
System.out.println(生成器);

您可以使用常规express,例如

    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);
String input=“hello world”;
Pattern=Pattern.compile(“,Pattern.DOTALL | Pattern.UNICODE|u CASE | Pattern.MULTILINE);
Matcher Matcher=pattern.Matcher(输入);
StringBuilder=新的StringBuilder();
int lastIndex=0;
while(matcher.find()){
append(input.substring(lastIndex,matcher.start());
lastIndex=matcher.end();
}
append(input.substring(lastIndex));
System.out.println(生成器);


发布您的代码,这可能有助于修复您的问题issue@DaUltimateTrooper不过,在HTML/XML上使用正则表达式时要小心,只有在某些特殊情况下,正则表达式才是正确的工具(尽管这可能是其中之一)。通常,您应该使用HTML/XML解析器。@Aerow什么代码?这是我描述的字符串:)。发布您的代码,它可能有助于修复您的错误issue@DaUltimateTrooper不过,在HTML/XML上使用正则表达式时要小心,只有在某些特殊情况下,正则表达式才是正确的工具(尽管这可能是其中之一)。通常,您应该使用HTML/XML解析器。@Aerow什么代码?这是我描述的字符串:).+1,用于在我前面发布。不过,您并不真正需要
toString()
。我只是从下面的链接复制了答案;)。我想这是为了清楚起见,以防万一!谢谢你给我一个好提示。但我不想删除HTML。只需在我之前发布评论标签+1。不过,您并不真正需要
toString()
。我只是从下面的链接复制了答案;)。我想这是为了清楚起见,以防万一!谢谢你给我一个好提示。但我不想删除HTML。Just comments tag最好使用
int end=str.lastIndexOf(“-->”)不,我不这么认为。因为你永远不知道html里面是否有几个注释。@Waqas我指出它是因为我认为可能有嵌套注释。我没有想到打开一条评论,关闭它,再打开(并关闭)另一条评论。@Waqas这段代码删除了所有内容,但每个结尾都有“->”。如果我试图在末尾添加+1,那么应用程序就会崩溃。嗯。。。你试过这个吗?现在它返回另一个字符串
ref;-->
。最好使用
int end=str.lastIndexOf(“-->”)不,我不这么认为。因为你永远不知道html里面是否有几个注释。@Waqas我指出它是因为我认为可能有嵌套注释。我没有想到打开一条评论,关闭它,再打开(并关闭)另一条评论。@Waqas这段代码删除了所有内容,但每个结尾都有“->”。如果我试图在末尾添加+1,那么应用程序就会崩溃。嗯。。。你试过这个吗?现在它返回另一个字符串
ref;-->。我不能!这就是我发布此问题的原因。如果是,请使用正则表达式。读正则表达式烹饪书我不能!这就是我发布此问题的原因。如果是,请使用正则表达式。阅读正则表达式食谱