Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java不兼容类型boolean和char_Java - Fatal编程技术网

Java不兼容类型boolean和char

Java不兼容类型boolean和char,java,Java,我正在编写一个文本冒险,我遇到了以下错误: Error:(59, 45) java: incompatible types: java.lang.String cannot be converted to boolean Error:(60, 29) java: incomparable types: boolean and char Error:(60, 36) java: bad operand types for binary operator '&&' first t

我正在编写一个文本冒险,我遇到了以下错误:

Error:(59, 45) java: incompatible types: java.lang.String cannot be converted to boolean
Error:(60, 29) java: incomparable types: boolean and char
Error:(60, 36) java: bad operand types for binary operator '&&'
  first type:  boolean
  second type: char
Error:(64, 26) java: incomparable types: java.lang.Boolean and char
Error:(64, 33) java: bad operand types for binary operator '&&'
  first type:  boolean
  second type: char
我是java新手,大约有一周的经验,尝试过将&&to | |,改为布尔值,再改回字符串

switch (firstChoice){
            case "go to mailbox":
                System.out.println("The mailbox is closed. Open it?(y/n");
                userInput.nextLine();
                String mailbox;
                mailbox = userInput.nextLine();
                if (mailbox == 'Y' && 'y')
                System.out.println("The mailbox is rusted shut. Pull harder?");

当邮箱生锈关闭时,输出应为。用力拉?

首先,将==字符串与字符进行比较。第二,你想要一个或不是一个,最后,它会更干净与equalsIgnoreCase。像

或是使用


您可以试用ifY.equalsIgnoreCasemailbox,而不是mailbox='Y'&&&'Y',这应该可以使用。

firstChoice似乎是一个布尔值,因此只能有true或false值。您试图将其与字符串go to mailbox进行比较。用您自己的话来说,用简单的英语来说,您认为mailbox='Y'&&&'Y'是什么意思?@KarlKnechtel如果用户输入是Y或Y,则表示邮箱已生锈关闭。@Therediper如果您有任何编译错误,请添加完整的编解码器类。这将有助于调试问题。可能会将“”单引号更改为双引号,因为您要从中获取它的是字符串,而不是字符。然而,在这种情况下,你需要做一个.equals。
if (mailbox.equals("Y") || mailbox.equals("y"))
if ("Y".equalsIgnoreCase(mailbox))