我之前提出了一个问题,但遭到了严厉的批评,所以我在这里再次提出。更简单,并重新措辞以吸引那些可能担心我之前提出问题的方式的人。
背景
我正在解析一些 HTML 以获取信息。我将所有内容隔离在一系列行中,但我希望抓取的内容以及后面的一堆空格。为了摆脱空格,我选择使用trim(),但我遇到了麻烦。我的代码的最后几行是测试:
System.out.println("'" + someString + "'\n'" + someString.trim() + "'");
结果是:
'Sophomore '
'Sophomore '
我担心我调用trim()的方式可能有问题,因为我们都会时不时地犯错误,所以我像这样测试了它:
String s = " hello ";
System.out.println("'" + s+ "'\n'" + s.trim() + "'");
结果是:
' hello '
'hello'
我的问题
我究竟做错了什么?我想要的是“大二”,而不是“大二 ”
我期待您的精彩答复(提前致谢!)。
String.trim()
具体只删除 http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#trim%28%29代码超过的第一个字符之前的字符\u0020
,以及最后一个这样的字符之后。
这不足以删除all可能的空白字符 - Unicode 定义了更多(上面的代码点\u0020
) 不会被匹配.trim()
.
也许你的空白角色并不是你想象的那样?
EDIT评论显示,额外的字符确实是“特殊”空白字符,特别是\u00a0
这是一个 Unicode“不间断空格”。要将其替换为普通空格,请使用:
str = str.replace('\u00a0', ' ');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)