JDK的String.trim()方法非常幼稚,仅删除ascii控制字符。
Apache
Commons的StringUtils.strip()稍好一些,但使用了JDK的Character.isWhitespace(),后者无法将不间断的空格识别为whitespace。
那么,用Java修剪字符串的最完整,与Unicode兼容,安全和正确的方法是什么?
顺便说一句,有没有比commons-lang
我应该使用的库更好的库?
Google 最近已经提供了番石榴库。它可能具有您要查找的内容:
CharMatcher.inRange('\0', ' ').trimFrom(str)
与String.trim()等效,但是您可以自定义要修剪的内容,请参考JavaDoc。
例如,它有自己的WHITESPACE定义,该定义不同于JDK,并且是根据最新的Unicode标准定义的,因此您可以将所需内容写为:
CharMatcher.WHITESPACE.trimFrom(str)
问题内容: 在Java中,我这样做是为了修剪字符串: 输出为: 作品。但是我想知道是否通过给自己分配一个变量来做正确的事情。我不想通过创建另一个变量并将调整后的值分配给它来浪费资源。我想就地进行修剪。 那我这样做对吗? 问题答案: 您做对了。从文档中: 字符串是常量;它们的值创建后无法更改。字符串缓冲区支持可变字符串。由于String对象是不可变的,因此可以共享它们。 同样从文档中: 修剪 公共字
问题内容: 我在Java中有一个具有值的字符串变量: 我希望我的最终字符串包含值: 我怎样才能做到这一点?我是Java编程语言的新手。 谢谢, 问题答案: 您可以使用:
我应该如何更改RegExReplacementString(或者可能是RegExMatchString)以便实现这一点? 示例输入为: 当前我正在获取相关部件 但我需要获取areaname:“135f61” 编辑:我正在从文本文件中读取正则表达式匹配字符串。和初始化正则表达式;
问题内容: 如何修剪JavaScript中的字符串? 问题答案: 自IE9 +起,所有浏览器都具有字符串方法。 对于不支持的浏览器,可以使用MDN中的以下polyfill : 也就是说,如果使用,也可以使用,并且可以处理undefined / null。 看到这个:
问题内容: 如何修剪Java中的字符? 例如 j 应该是 “乔\吉尔” j 应该是 “ \ joe \ jill \” 等等 问题答案: Apache Commons 有一个很棒的StringUtils类(org.apache.commons.lang.StringUtils)。其中有一种方法可以满足您的需求。 我强烈建议无论如何都要使用Apache Commons,尤其是Collections和
问题内容: 下面程序的输出: 是: 然而 如何从字符串的开头和结尾删除换行符(Java)? 否则说。 我想念什么? 问题答案: 既然是一成不变的 不会更改基础值,它会返回一个没有开头和结尾空格字符的新值。您需要替换参考