Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
奇怪的Java扩展ascii错误_Java - Fatal编程技术网

奇怪的Java扩展ascii错误

奇怪的Java扩展ascii错误,java,Java,我试图用Java与包含扩展ASCII字符的两个字符串进行比较 boolean result = "éasdfasdf".substring(0,1).equals("é"); 有人能解释为什么这个结果是假的吗?我认为这与字符编码有关,但我不知道到底是什么问题 更新:ideone.com确实成功运行了这两行,所以问题在我的邮箱中。我想我找到了更多的证据: System.out.println("éb".charAt(1) == 'b'); 也会失败。。。这可能是两种不同字符编码的问题吗?使用

我试图用Java与包含扩展ASCII字符的两个字符串进行比较

boolean result = "éasdfasdf".substring(0,1).equals("é");
有人能解释为什么这个结果是假的吗?我认为这与字符编码有关,但我不知道到底是什么问题

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

System.out.println("éb".charAt(1) == 'b');
也会失败。。。这可能是两种不同字符编码的问题吗?

使用

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

它将给出预期的结果 原因很简单-使用“==”可以通过引用而不是值来比较对象。所以
equals()
解决了这个问题

在Java中搜索字符串比较
boolean result=“éasdfasdf”。代码点(0)==“é”用于简单字符。@VincentTeuben-不。事实并非如此。它返回
true
Yes,当然,equals()不会失败:)在您给出答案之前,请尝试一下,因为这里有可疑的地方。System.out.println(“éasdfasdf.”子串(0,1).equals(“é”);在我的Windows Box上失败别怀疑,我已经试过了。它在我的系统上运行正常,例如:事实上,ideone给我的是真的,我从ideone复制了确切的源代码,并在IntelliJ14、JDK 1.7.0_51、Windows中进行了尝试,这给了我一个错误的答案。