如果满足要求,语句似乎会跳过

Eri*_*rom 1 java string if-statement equals

我有一个非常简单的问题,我真的无法理解.

我有一个方法,它接受一个字符串,并确定字符串的第一个字符是什么,然后返回它.

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";
}
Run Code Online (Sandbox Code Playgroud)

但是,对于一个示例keyValue = C而不是返回,它会跳过if语句并在我确定keyValue为"C"时返回"F".

为什么会这样?

san*_*hat 7

首先,检查我如何比较字符串?

其次,您不必将char转换为String来检查其值,您可以像下面这样做

res = value.charAt(0);
//keyValue = Character.toString(res); NOT REQUIRED
if (res == 'C'){
    return Character.toString(res);
} else if (res == 'G') {
Run Code Online (Sandbox Code Playgroud)