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()。
我从 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()。