Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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 为什么这两种类型不同?_Java - Fatal编程技术网

Java 为什么这两种类型不同?

Java 为什么这两种类型不同?,java,Java,我将字符串拆分为字符串[]arr,并希望将arr的元素与字符串进行比较 但我不知道为什么System.out.println(arr[0]==“P”);返回“false” 请检查我的密码并回答我。谢谢大家! enter code here String s = "pPooyy"; s = s.toUpperCase(); String[] arr; arr = s.split(""); System.out.println(arr[0]); System.out.println(arr[0

我将字符串拆分为字符串[]arr,并希望将arr的元素与字符串进行比较 但我不知道为什么System.out.println(arr[0]==“P”);返回“false”

请检查我的密码并回答我。谢谢大家!

enter code here
String s = "pPooyy";
s = s.toUpperCase(); 
String[] arr; 
arr = s.split("");

System.out.println(arr[0]);
System.out.println(arr[0] == "P");
这就是结果。 P 假的

System.out.println(arr[0]);->这个println的结果是P,所以我认为System.out.println(arr[0]=“P”);将返回“true”,但它不是

为什么这两种类型不同

为什么不使用charAt

Syso(s.charAt(0)=='P')

如果有帮助,请告诉我

谢谢您的回答!但我只是想知道为什么这个语句System.out.println(arr[0]=“P”);return false.“我只是想知道为什么这个语句,
System.out.println(arr[0]=“P”)
print false”-因为
arr[0]
“P”
不是同一个对象。这就是参考值的含义。测试两个字符串是否相等的正确方法(在直观意义上)在dup链接Q&A中有描述。“为什么这两种类型不同?”-类型没有区别。不同的是这些值。类型和值不是一回事。@Stephen C非常感谢您的支持,answel!根据你的回答,我可以找到“==”与.equals()之间的区别,而且我认为我需要了解CBR,CBV!我很高兴能帮上忙。