从用户获取字符输入



我正在尝试获取用户输入是或否(Y 或 N(,但我不断遇到麻烦。我还必须使小写的 y 和 n 工作。我想知道最好的方法是什么?这是我的程序:

import java.util.Scanner;
public class Homework2 {
public static void main(String args[]) {
System.out.println("nWould you like to see some healthy weight loss guidelines? (Y or N)");
char decision = (char) System.in.read();
if (decision.equals("Y")) {
System.out.println("nPlaceholder");
} else if (decision.equals("N")) {
System.out.println("n");
System.out.println("========================================================");
System.out.println("||                                                    ||");
System.out.println("||         Thank you From Your Friends At             ||");
System.out.println("||          Happy Valley Fitness Center!              ||");
System.out.println("||                                                    ||");
System.out.println("========================================================");
} else {
System.out.println("nYou did not enter yes or no, program stopping");
System.out.println("n");
System.out.println("========================================================");
System.out.println("||                                                    ||");
System.out.println("||         Thank you From Your Friends At             ||");
System.out.println("||          Happy Valley Fitness Center!              ||");
System.out.println("||                                                    ||");
System.out.println("========================================================");
}
}
}

现在的问题是您无法在char上调用.equals()。相反,只需从System.in读取作为String并使用方法.equalsIgnoreCase(),以便它匹配大写 Y/N 或小写 y/n:

Scanner in = new Scanner(System.in);       
String decision = in.next();
if(decision.equalsIgnoreCase("Y"))
{
System.out.println("nPlaceholder");
}

最新更新