我试图在Java中用2个包含扩展ASCII字符的字符串进行比较。
boolean result = "éasdfasdf".substring(0,1).equals("é");
有人可以解释为什么这会导致错误吗?我认为它与字符编码有关,但我无法弄清楚问题到底是什么......
更新:ideone.com成功运行这两行,所以问题出在我的框中。我想我找到了更多证据:
System.out.println("éb".charAt(1) == 'b');
也失败了......这可能是2种不同字符编码的问题吗?
答案 0 :(得分:2)
使用
boolean result = "éasdfasdf".substring(0,1).equals("é")
它会给出预期的结果!
原因很简单 - 使用' =='您通过引用而不是按值比较对象。所以equals()
解决了这个问题