Jsoup在解析Html时,转换的空格存在以下问题
- 普通空格
char c = 12288;
在html文件中的 空格 会被解析为 全角空格,全角空格在unicode编码中的码值时12288,而正常的space空格在uncoide中的码值时32,这里在转换时要注意。
- No-Break-Space 空格
No-Break-Space 的简写为nbsp,这个字符就对应了html内的 空格,这个空格和普通的32空格是完全一样的,没有任何区别,但是在进行例如 startWith(" “) endsWith(” ")等方法时 空格都是半角空格,所以此时一定要注意。
去除一个字符串全部空格的方法
protected static String trimAllBlank(String text) {
if (isEmpty(text)) {
return "";
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < text.length(); i++) {
char charAt = text.charAt(i);
int intCode = (int) charAt;
if (blankCode.contains(intCode)) {
sb.append("");
} else {
sb.append(charAt);
}
}
text = sb.toString();
return text;
}
去除一个字符串首尾空格的方法
//去除前后空格
protected static String trimHeadAndTailBlank(String tdText) {
if (isEmpty(tdText)) {
return "";
}
while (tdText.length() > 0) {
char c = tdText.charAt(0);
//判断第一个字符是否是空格
if (blankCode.contains((int) c)) {
//删除第一个空格
tdText = tdText.substring(1);
} else {
break;
}
}
while (tdText.length() > 0) {
char c = tdText.charAt(tdText.length() - 1);
//判断第一个字符是否是空格
if (blankCode.contains((int) c)) {
//删除第一个空格
tdText = tdText.substring(0, tdText.length() - 1);
} else {
break;
}
}
return tdText;
}