我的代码中可能存在一个微不足道的问题,其中我从Web服务获取HTML作为响应,该服务作为java字符串返回。我想在网页上将此String显示为HTML。我面临的问题是html retured包含一些
形式的脚本<% ... %>
标记。这些显示在网页上。我想要的只是立即评估这些,而不是在屏幕上显示为文本。 例如,正在显示的文本是
<% if('a' == 'b'){ %>
你好。
我想摆脱&lt;%...%&gt;的事情。
提前致谢。
答案 0 :(得分:0)
如果我理解,你想从Java String中删除这些东西,所以这样的东西可以工作:
String code = "<html> Hello<% if('a' == 'b'){ %>, I'm<% if('a' == 'b'){ %> French</html>";
int start = 0;
int end = 0;
String str = "";
end = code.indexOf("<%",start); //First substring will do "0 - end";
while(end != -1 && start != -1){
str += code.substring(start, end);
start = code.indexOf("%>",end) +2; //+2 is used to get the index after "%>"
end = code.indexOf("<%",start); //First occurence of "<%" after the last "%>"
}
str += code.substring(start,code.length());//Last substring will do "start - str.len-1"
System.out.println(str);
更简单的方式
String code = "<html>Hello<% if('a' == 'b'){ %>, I'm<% if('a' == 'b'){ %> French</html>";
String str = code.replaceAll("<%.*?%>", "");
System.out.println(str);
打印
<html>Hello, I'm French</html>