Java是一个不可移除的空白字符串

时间:2015-06-24 23:12:05

标签: java string whitespace equals

我有来自mysql DB的这个字符串:它应该是:2100428169/2010

这是我的代码

String str = rs.getString("str");
str = str.replaceAll("\\s+","");
str = str.trim();

char[] strCH = str.toCharArray();

我得到了这个:

[, 2, 1, 0, 0, 4, 2, 8, 1, 6, 9, /, 2, 0, 1, 0]

为什么?

这是一个问题,因为我需要使用str1.equals(str),但它不起作用,因为

之后
Object obj = (object)str;

当我使用toCharArray时,在obj中再次使用空格,这意味着equals无法正常工作。

2 个答案:

答案 0 :(得分:4)

我终于找到了解决方案:

这是问题,因为ASCII 65279来自BOM,而trim()并不适合它。

这有助于:paintComponent()

答案 1 :(得分:0)

replaceAll()和trim()都不适用于某些字符 实际上,使用此方法无法删除多个字符。我甚至看到一些文件具有java编译器无法识别的字符,这会产生令人难以置信的情况 trim()方法从字符串的末尾删除所有\s,并通过replaceAll()从字符串中删除所有\s
而是使用以下

str = str.replaceAll("[^\\w\\\\]+", "");

您现在不需要调用trim()。