如何在Java中正确修剪字符串中的空格?
JDK 的 String.trim() 方法非常幼稚,只删除 ascii 控制字符。
Apache Commons的StringUtils.strip()稍微好一些,但使用JDK的Charact.isWhitespace(),它不承认不间断空格为空格。
那么,在Java中修剪字符串的最完整,Unicode兼容,安全和正确的方法是什么?
顺便说一句,有没有一个比我应该用于这类东西的更好的库?commons-lang
JDK 的 String.trim() 方法非常幼稚,只删除 ascii 控制字符。
Apache Commons的StringUtils.strip()稍微好一些,但使用JDK的Charact.isWhitespace(),它不承认不间断空格为空格。
那么,在Java中修剪字符串的最完整,Unicode兼容,安全和正确的方法是什么?
顺便说一句,有没有一个比我应该用于这类东西的更好的库?commons-lang
CharMatcher.inRange('\0', ' ').trimFrom(str)
等效于 String.trim(),但您可以自定义要修剪的内容,请参阅 JavaDoc。
例如,它有自己的WHITESPACE定义,它与JDK不同,并且根据最新的Unicode标准定义,因此您需要的内容可以编写为:
CharMatcher.WHITESPACE.trimFrom(str)
我发誓,我只是在我发布问题后才看到这个:谷歌刚刚发布了Guava,一个核心Java实用程序库。
我还没有尝试过这个,但据我所知,这是完全符合Unicode的:
String s = " \t testing \u00a0"
s = CharMatcher.WHITESPACE.trimFrom(s);