Java 将字符串转换为布尔值

Java 将字符串转换为布尔值,java,string,boolean,Java,String,Boolean,我需要使用java代码解决此练习: 我们有一只猴子和一个布尔参数aSmile,我们需要知道猴子是否在笑,如果是,我们在trobule,如果不是,我们就好了 import java.util.Scanner; public class taxi { public static void main(String[] args) { boolean aSmile; Scanner scan = new Scanner(System.in); System.out.p

我需要使用java代码解决此练习:

我们有一只猴子和一个布尔参数aSmile,我们需要知道猴子是否在笑,如果是,我们在trobule,如果不是,我们就好了

import java.util.Scanner;


public class taxi {

public static void main(String[] args) {

    boolean aSmile;


    Scanner scan = new Scanner(System.in);
    System.out.println("Is monkey A smiling?");
    String answer = scan.nextLine();
    if (answer.equalsIgnoreCase("yes")){
         aSmile = true; 
    }
    else if (answer.equalsIgnoreCase("no")){
        aSmile = false;
    }
    else {
        System.out.println("Sorry, write a correct answer");
    }


    if(aSmile = true){
        System.out.println("We are in trouble");
    }

    else if (aSmile = false){
        System.out.println("We are good!");
    }
   }
}
问题是,无论我在控制台中写什么,我总是知道我们在trobule中

if(aSmile = true){ //Look here.
    System.out.println("We are in trouble");
}
您正在为变量aSmile赋值

替换为:

if(aSmile) { //Or if(aSmile == true) {
  ...

您正在使用赋值运算符,然后检查布尔值

if(aSmile = true){
        System.out.println("We are in trouble");
    }
aSmile将始终为true,因为您将它指定为true,然后检查它是否为true。您必须使用==运算符,或者在本例中仅使用

if(aSmile){ // means if aSmile is true
}

您错误地使用了条件运算符。 应该是

    if(aSmile){

     }
将ifaSmile=true{更改为ifaSmile{或ifaSmile==true{;一个=是赋值。