**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
17小时前关门了。
改进这个问题
任务如下:
有一个动态字符串
字符串包含html标记和html之外的文本,例如。 <h1>Hello</h1>
html标记以<开头,以>
标签有html、倒过来的单逗号和双逗号、斜杠、方括号、regex模式、样式表和
html标记应该保持在字符串中的原样
html标记外的文本将转换为ascii格式
最后,将打印更新的字符串
目前所做的工作:
public static void main(String[] args) {
String str =
"<label> Password</label>"+
"<div class=\"input-group\" id=\"show_hide_password\">";
System.out.println(convert(str));
}
static String convert(String str) {
String regex = "(?<=>)([^<]*)(?=<)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
String match = matcher.group();
if (!match.isBlank()) {
return str.replaceAll(regex,
" " + Arrays.stream(match.split(""))
.map(s -> !" ".equals(s) ? ("&#" + (int) Character.valueOf(s.charAt(0)) + ";") : " ")
.collect(Collectors.joining()) + " ");
}
}
return str;
}
上述代码的输出为:
<label> Password </label> Password <div class="input-group" id="show_hide_password">
你可以看到它的印刷 Password
两次,即一次 <label>
标记,一旦超出此标记
我做了另一个测试如下:
String str =
"<select name=\"dept\" id=\"parent\" class=\"list_cf\"> \n"+
"<option value=\"\"> --Departments--</option>\n"+
"<option value=\"2\" class=\"2\"> Finance Department</option> \n"+
"<option value=\"5\" class=\"5\"> Human Resource</option> \n"+
"<option value=\"4\" class=\"4\"> Marketing & Bussiness Development</option> \n"+
"<option value=\"6\" class=\"6\"> Operations Management</option> \n"+
"<option value=\"3\" class=\"3\"> Sales Department</option> \n"+
"<option value=\"1\" class=\"1\"> Technology Department</option> \n"+
"</select> ";
这个字符串根本不会转换成ascii码,而是在控制台中按原样打印
我在努力保持双方之间的联系 <starting and ending HTML tags>
因为它是和改变文本是写在外面 <starting and ending HTML tags>
提前谢谢
暂无答案!
目前还没有任何答案,快来回答吧!