查询Java中的trim()方法

我早些时候问了一个问题,但遇到了严厉的批评,所以我再次提出这个问题。 更简单,并改为吸引那些可能一直关注我之前问过的人。

背景我正在解析一些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() 专门删除代码超过\u0020的第一个字符之前的字符,以及最后一个这样的字符之后的字符。

这不足以删除所有可能的空白字符 – Unicode定义了几个(以及高于\u0020代码点)不能与.trim()匹配的.trim()

也许你的白色空间字符不是你认为的那些?

编辑评论显示,额外的字符确实是“特殊的”空白字符,特别是\u00a0这是一个Unicode“非\u00a0空间”。 要替换普通空格,请使用:

 str = str.replace('\u00a0', ' '); 

源字符串中必须有非空白字符。 将以下内容添加到代码中并查看其打印内容。

 for (char ch : someString.toCharArray()) { System.out.print(Integer.toHexString(ch) + " "); }