我有来自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
无法正常工作。
答案 0 :(得分:4)
我终于找到了解决方案:
这是问题,因为ASCII 65279来自BOM,而trim()并不适合它。
这有助于:paintComponent()
答案 1 :(得分:0)
replaceAll()和trim()都不适用于某些字符
实际上,使用此方法无法删除多个字符。我甚至看到一些文件具有java编译器无法识别的字符,这会产生令人难以置信的情况
trim()方法从字符串的末尾删除所有\s
,并通过replaceAll()从字符串中删除所有\s
。
而是使用以下
str = str.replaceAll("[^\\w\\\\]+", "");
您现在不需要调用trim()。