Ошибка: неверные типы операндов для бинарного оператора '=='

Я просто хотел выполнить задачу в моей Книге, но я не понимаю, почему это неправильно. Следует сказать, что отрицательные числа не являются положительными, а положительные не являются отрицательными с логическим значением. Это мой код:

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

3 ответа

Решение

Zahl - это символ, который вы пытаетесь сравнить со String. В Java это запрещено, хотя есть и другие языки, где это действительно разрешено.

if(Zahl == '-') 

Может быть, то, что вы ищете, но я все еще сомневаюсь в этом, потому что Заль не инициализируется на этом этапе. Я думаю, что вы действительно ищете

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

В качестве примечания позвольте мне отметить, что мы не начинаем имена полей или имен переменных с символов верхнего регистра. Мы обычно используем CamelCase для этого

Вы сравниваете char с String, поэтому ошибка. Операнды бинарного оператора '==' должны быть одного типа.

Вы не можете сравнить строку - && Zahl персонажу в переменной Zahl с оператором == потому что в Java символ является примитивным типом, в то время как строка является объектом.

Кстати, вы не присвоили значение ZahlЯ не понимаю, каково ваше намерение, сравнивая его со строкой.

Другие вопросы по тегам