我有2个java列表
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
我将数据库中的一些数据加载到第一个数据库,从不同数据库加载到第二个数据库。
列表中的字符串看起来完全相同:
3441134 China Ap F
3441134 China Ap F
但是当我检查时:
if(list1.get(1).equals(list2.get(1))){
logger.info("true");
}
else{
logger.info("false")
}
我总是得到
假
有人可以说为什么?我查了一下白色空格也是一样。
答案 0 :(得分:1)
我认为与字符编码有关,您可能在控制台和调试中看到相同的字符串,但在内部,由于编码,它们有一个额外的不可见字节。
试着看看:Invisible characters in Java Strings你会明白我在说什么。