对于Java,如果我想执行if语句以确保输入只接受一个字符,我应该如何继续?
我试图做一个while循环来获取用户输入,并确保他们输入的只是一个字符,因此如果他们做ab,它将要求他们进行另一个用户输入,而不是将他们输入的第一个字母作为答案。我可以用下面这样的试一试吗?它现在不起作用,我不知道为什么 谢谢你的帮助对于Java,如果我想执行if语句以确保输入只接受一个字符,我应该如何继续?,java,char,try-catch,Java,Char,Try Catch,我试图做一个while循环来获取用户输入,并确保他们输入的只是一个字符,因此如果他们做ab,它将要求他们进行另一个用户输入,而不是将他们输入的第一个字母作为答案。我可以用下面这样的试一试吗?它现在不起作用,我不知道为什么 谢谢你的帮助 boolean single = true; while(single) { try {
boolean single = true;
while(single) {
try {
if(letter.length()==1) {
break;
} else {
System.out.println("Please enter a single character only!");
}
} catch (Exception e) {
System.out.println("Please enter a single character only!");
}
}
这不适合引发异常。首先,检查输入的长度,如果它有效,检查
input.charAt(0)
是否为字母。您可以使用布尔变量来跟踪输入是否无效,并在输入无效时返回
有不同类型的循环。对于这种情况,我更喜欢使用do而循环。do-while
循环保证其主体将至少执行一次。查看以了解更多信息
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean valid;
String input;
do {
valid = true;
System.out.print("Enter a letter: ");
input = scanner.nextLine();
if (input.length() == 0 || input.length() > 1 || !Character.isLetter(input.charAt(0))) {
System.out.println("This is an invalid input. Please try again.");
valid = false;
} else {
System.out.println("This is a valid input.");
// ...do other processing
}
} while (!valid);
}
}
运行示例:
Enter a letter:
This is an invalid input. Please try again.
Enter a letter: abc
This is an invalid input. Please try again.
Enter a letter: 1
This is an invalid input. Please try again.
Enter a letter: w
This is a valid input.
将输入作为字符串,并检查其长度是否等于1?只需获取输入的字符串的长度,然后测试它是否为字符。注意,您的代码格式非常糟糕--为什么要使代码比必要时更难阅读和理解?我已经修好了,但是以后,请你自己努力去做。你不想为此抛出一个例外。只需检查while循环中的长度,如果长度为1,则中断循环。例外情况适用于例外情况。