Java - charAt()、equalsIgnoreCase、if 语句测试?
Java - charAt(), equalsIgnoreCase, if statement testing?
我想要的是无论用户输入什么,如果他们输入的第一个字母是 'y' 或 'n',无论大小写,它都会打印 "game start"。
我试过使用 "letter" 变量的 equalsIgnoreCase() 但它给出了错误:char cannot be dereferenced。任何建议将不胜感激!谢谢!
Scanner input = new Scanner(System.in);
System.out.println("Do you want to continue?");
String wesker = input.nextLine();
char letter = wesker.charAt(0);
if(letter == 'y' || letter == 'p'){
System.out.println("Game start");
} else {
System.out.println("Game over");
}
只需检查两种情况:
if( letter == 'y' || letter == 'Y' || letter == 'p' || letter == 'P' )
尝试使用 Character#toLowercase()
:
if (Character.toLowerCase(letter) == 'y' || Character.toLowerCase(letter) == 'n') {
或
if (Character.toUpperCase(letter) == 'Y' || Character.toUpperCase(letter) == 'N') {
或者干脆
if( letter == 'y' || letter == 'Y' || letter == 'n' || letter == 'N' )
您可以预先构建一组可接受的字符。
Set<Character> yes = new HashSet<>(Arrays.asList('y','Y','p','P'));
public void test() {
char letter = 'c';
if ( yes.contains(letter)) {
}
}
equalsIgnoreCase 只能由字符串使用。对于您的情况,如果您想使用该方法,您可以这样做:
Scanner input = new Scanner(System.in);
String wesker = input.nextLine();
String letter = wesker.substring(0,1);
if(letter.equalsIgnoreCase("y") || letter.equalsIgnoreCase("n")){
System.out.println("Game start");
} else {
System.out.println("Game over");
}
我想要的是无论用户输入什么,如果他们输入的第一个字母是 'y' 或 'n',无论大小写,它都会打印 "game start"。
我试过使用 "letter" 变量的 equalsIgnoreCase() 但它给出了错误:char cannot be dereferenced。任何建议将不胜感激!谢谢!
Scanner input = new Scanner(System.in);
System.out.println("Do you want to continue?");
String wesker = input.nextLine();
char letter = wesker.charAt(0);
if(letter == 'y' || letter == 'p'){
System.out.println("Game start");
} else {
System.out.println("Game over");
}
只需检查两种情况:
if( letter == 'y' || letter == 'Y' || letter == 'p' || letter == 'P' )
尝试使用 Character#toLowercase()
:
if (Character.toLowerCase(letter) == 'y' || Character.toLowerCase(letter) == 'n') {
或
if (Character.toUpperCase(letter) == 'Y' || Character.toUpperCase(letter) == 'N') {
或者干脆
if( letter == 'y' || letter == 'Y' || letter == 'n' || letter == 'N' )
您可以预先构建一组可接受的字符。
Set<Character> yes = new HashSet<>(Arrays.asList('y','Y','p','P'));
public void test() {
char letter = 'c';
if ( yes.contains(letter)) {
}
}
equalsIgnoreCase 只能由字符串使用。对于您的情况,如果您想使用该方法,您可以这样做:
Scanner input = new Scanner(System.in);
String wesker = input.nextLine();
String letter = wesker.substring(0,1);
if(letter.equalsIgnoreCase("y") || letter.equalsIgnoreCase("n")){
System.out.println("Game start");
} else {
System.out.println("Game over");
}