error: bad operand types for binary operator '=='

error: bad operand types for binary operator '=='

只是想在我的书中完成一项任务,但我不明白为什么这是 wrong.It 应该说负数不是正数,正数不是布尔值的负数。 这是我的代码:

import javax.swing.JOptionPane;

public class Zahlentest {
    public static void main(String[] args) {

        String eingabe;
        char Zahl;
        boolean istVokal;
        eingabe = JOptionPane.showInputDialog("Geben Sie eine Zahl ein: ");
        if (Zahl == "- && Zahl") {
            istVokal = false;
        } else {
            istVokal = true;
        }
        if (istVokal == true) {
            JOptionPane.showMessageDialog(null, "Die Zahl ist nicht negativ!");
        } else {
            JOptionPane.showMessageDialog(null, "Die Zahl ist negativ!");
        }
    }
}

我不知道我做错了什么...请帮忙。 这是错误代码:

Zahlentest.java:10: error: bad operand types for binary operator '=='
            if (Zahl == "- && Zahl") {
             ^
      first type:  char
      second type: String
    1 error

你将char与String进行比较,这就是错误的原因。二元运算符'=='的操作数必须是同一类型。

Zahl 是您要与字符串进行比较的字符。在 java 中这是不允许的,尽管在其他语言中确实是允许的。

if(Zahl == '-') 

也许是您要找的东西,但我仍然怀疑,因为 Zahl 在那个阶段还没有初始化。我想你真正要找的是

if (eingabe.equals("- && Zahl"))

作为脚注,我要指出,我们不会以大写字符开头字段名称或变量名称。我们通常为此使用 camelCase

您不能使用运算符 == 将字符串 - && Zahl 与变量 Zahl 中的字符进行比较,因为在 java 中,char 是原始类型,而字符串是一个对象。

顺便说一句:你没有给 Zahl 赋值,我不明白你的意图是将它与字符串进行比较。