Java 不可移动的白色 space 字符串

Java an unremoveable white space string

我从 mysql 数据库中得到了这个字符串:应该是这样的: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;

它再次出现在 obj 中,开头有一个 space,就像我使用 toCharArray 时一样,所以这意味着 equals 不起作用。

我终于找到了解决方案:

这是个问题,因为 ASCII 65279 是 BOM 中的内容,trim() 不适用于它。

这有帮助:str = str.replace("\uFEFF", "");

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

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

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