将数组中字符串的值传递给Java中的方法?


问题内容

感谢您抽出时间来阅读。抱歉,如果我的问题很愚蠢,我尝试搜索,但无法完全弄清楚为什么出现此问题。我试图为另一个应用程序测试一些代码,但是遇到了问题。也许我只是不正确地理解数组。

我在名为Transpose的类中有一个名为halfStepUp的方法,出于测试目的,如果给定“ c”,则应返回“ c#”,如果给定“ d”,则应返回“
d#”。这是代码:

public class Transpose{
    public static String halfStepUp(String note){
        String n = null;
        if (note == "c") n = "c#";
        if (note == "d") n = "d"#;
        return n;
    }   
}

我的主要方法中有以下代码:

String [] scale = new String[2];
scale[0] = "c";
scale[1] = "d";

System.out.println(Transpose.halfStepUp(scale[0]));

这将显示“ null”。我究竟做错了什么?我知道该方法有效,因为如果我使用

System.out.println(Transpose.halfStepUp("c"));

它工作正常。该解决方案可能非常尴尬,但是在寻求帮助时,我找不到找到措辞的好方法。再次感谢您的阅读,非常感谢您提供任何答案!


问题答案:

尝试以下方法:(从评论中编辑)

public class Transpose{
    public static String halfStepUp(String note){
        String n = null;
        if ("c".equals(note)) n = "c#"; //using .equals as a string comparison
        if ("d".equals(note)) n = "d#"; //not "d"#
        return n;
    }   
}