运算符==不能应用于java.lang.String char

MOT*_*DEX 5 java android netbeans

我在NetBeans Java应用程序中没有收到任何错误,但是在将代码应用到Android Java项目中时却得到了上述错误。我试过if (alpha[i].equals(c)) {,但然后像我在NetBeans做的,这是一个字符串转换为莫尔斯例如,我会得到任何结果SOS,以... --- ...

NetBeans Java应用程序(可以,当我输入SOS时,我得到... --- ...):

private static String toMorse(String text) {
    char[] characters = text.toUpperCase().toCharArray();
    StringBuilder morseString = new StringBuilder();
    for (char c : characters) {
        for (int i = 0; i < alpha.length; i++) {
            if (alpha[i] == c) {
                morseString.append(morse[i] + " ");
                break;
            }
        }
    }
    return morseString.toString();
}
Run Code Online (Sandbox Code Playgroud)

Android Java项目(不起作用,当我输入字符串时,我什么也没得到):

public String toMorse(String text) {
    char[] characters = text.toUpperCase().toCharArray();
    StringBuilder morseString = new StringBuilder();
    for (char c : characters) {
        for (int i = 0; i < alpha.length; i++) {
            if (alpha[i] == c) { // error is on this line
                morseString.append(morse[i] + " ");
                break;
            }
        }
    }
    return morseString.toString();
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这部分代码在NetBeans和Android Studio中都可以使用(当我输入... --- ...我得到SOS时):

public String toEnglish(String text) {
    String[] strings = text.split(" ");
    StringBuilder translated = new StringBuilder();
    for (String s : strings) {
        for (int i = 0; i < morse.length; i++) {
            if (morse[i].equals(s)) {
                translated.append(alpha[i]);
                break;
            }
        }
    }
    return translated.toString();
}
Run Code Online (Sandbox Code Playgroud)

alpha和摩尔斯数组:

private String[] alpha = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
    "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
    "W", "X", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "0", " "};

private String[] morse = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
    "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.",
    "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-",
    "-.--", "--..", ".----", "..---", "...--", "....-", ".....",
"-....", "--...", "---..", "----.", "-----", "|"};
Run Code Online (Sandbox Code Playgroud)

soc*_*qwe 3

问题是 isalpha是一个数组,String而 isc是一个字符。您正在比较(char == string)这显然不符合预期。