java If语句似乎在满足需求的情况下跳过
我有一个非常简单的问题,我真的不明白
我有一个方法,它接受字符串并确定字符串的第一个字符是什么,然后返回它
public String deterFirstChar(String value){
String keyValue;
char res;
res = value.charAt(0);
keyValue = Character.toString(res);
if (keyValue == "C"){
return keyValue;
} else if (keyValue == "G") {
return keyValue;
}
System.out.println("Error: Wrong keyParam");
return "F";
}
但是,在确定keyValue为“C”时,它跳过if语句并返回“F”,而不是返回keyValue=C
为什么会发生这种情况
# 1 楼答案
试试这个
# 2 楼答案
首先,检查How do i compare string?
其次,您不必将char转换为String来检查其值,您可以像下面这样做
# 3 楼答案
不应使用
==
比较字符串,而应使用equals()
方法==
检查两个变量是否引用同一个对象李>equals()
方法检查对象的内容是否相同李>==
返回true,那么equals()
方法也返回true,因为它们引用的是同一个对象,因此它们相等你可以找到一个很好的解释string comparison with equals and assignment 如果要使用字符