如何移除字符串末尾空白?Java trim()无法去除HTML 的解决办法
问题根因
你遇到的trim()无效的核心原因是:
HTML里的 转义后对应的是非断空格,Unicode编码为U+00A0,而Java的trim()方法仅支持移除ASCII值≤32的字符(包含普通空格、制表符、换行符等),无法识别处理这类Unicode空白字符,所以末尾的非断空格会被保留。
解决方案
- 如果你使用的是Java 11及以上版本,直接调用JDK自带的
strip()方法即可,该方法支持识别所有Unicode空白字符:
String result = str.strip();
- 如果你使用的是Java 8及更早的旧版本,可以手动替换掉非断空格后再trim,或者用正则匹配所有空白字符做首尾移除:
// 方案1:专门替换非断空格后trim String result = str.replace('\u00A0', ' ').trim(); // 方案2:正则匹配所有Unicode空白,直接移除首尾 String result = str.replaceAll("^[\\p{Z}\\s]+|[\\p{Z}\\s]+$", "");
内容的提问来源于stack exchange,提问作者archita
相关产品推荐
相关产品推荐

