奇怪的Java扩展ascii错误

时间:2014-11-20 14:03:54

标签: java

我试图在Java中用2个包含扩展ASCII字符的字符串进行比较。

boolean result = "éasdfasdf".substring(0,1).equals("é");

有人可以解释为什么这会导致错误吗?我认为它与字符编码有关,但我无法弄清楚问题到底是什么......

更新:ideone.com成功运行这两行,所以问题出在我的框中。我想我找到了更多证据:

System.out.println("éb".charAt(1) == 'b');

也失败了......这可能是2种不同字符编码的问题吗?

1 个答案:

答案 0 :(得分:2)

使用

boolean result = "éasdfasdf".substring(0,1).equals("é")

它会给出预期的结果!

原因很简单 - 使用' =='您通过引用而不是按值比较对象。所以equals()解决了这个问题