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