在现有帖子Java remove HTML from String without regular expressions中 tucuxi 的帮助下,我构建了一个方法,可以从字符串中解析出任何基本的 HTML 标记。但是,有时原始字符串包含 html 十六进制字符,例如 é(它是重音 e)。我已经开始添加将这些转义字符转换为真实字符的功能。
您可能会问:为什么不使用正则表达式?还是第三方库?不幸的是,我不能,因为我在不支持正则表达式的 BlackBerry 平台上进行开发,而且我从未能够成功地将第三方库添加到我的项目中。
所以,我已经到了将任何 é 替换为“e”的地步。我现在的问题是,如何将实际的“重音 e”添加到字符串中?
这是我的代码:
公共静态字符串removeHTML(字符串概要){
char[] cs = synopsis.toCharArray();
String sb = new String();
boolean tag = false;
for (int i = 0; i < cs.length; i++) {
switch (cs[i]) {
case '<':
if (!tag) {
tag = true;
break;
}
case '>':
if (tag) {
tag = false;
break;
}
case '&':
char[] copyTo = new char[7];
System.arraycopy(cs, i, copyTo, 0, 7);
String result = new String(copyTo);
if (result.equals("é")) {
sb += "e";
}
i += 7;
break;
default:
if (!tag)
sb += cs[i];
}
}
return sb.toString();
}
谢谢!