我不确定如何验证用户只输入了一个字符。我知道我的长度检查结果根本不正确。我只是用它来填充。请帮忙。为了找到答案,我尝试了很多不同的方法,并在这个网站和其他网站上搜索了好几天。
final char SIZE = 10;
char [] letter = new char [SIZE];
// initiallizing input device
Scanner scan = new Scanner(System.in);
for (char index = 0; index < SIZE;)
{
System.out.println ("Please enter Letter #" + (index + 1));// gets letter from user
while ((!scan.hasNext("[A-Za-z]+")) || (!scan.hasNext(length(1)))){
if(!scan.hasNext(length (1))){
System.out.println ("Please only enter one Letter at a time: ");
letter [index] = scan.next().charAt(0); // accepts first character entered by user
}
if(!scan.hasNext("[A-Za-z]+")){
System.out.println ("Please enter a valid Letter: ");
letter [index] = scan.next().charAt(0); // accepts first character entered by user
}
else if((scan.hasNext("[A-Za-z]+")) && (scan.next(length(1)))){// makes sure letter entered is a letter
letter [index] = scan.next().charAt(0); // accepts first character entered by user
index++;// increases index if proper letter entered
}
}
}
for (char index = 0; index < SIZE; index++)
{
System.out.println ("Letter #" + (index + 1) + ": " + letter [index]);// prints characters entered by user in order
}
最佳答案
有很多方法可以做到这一点。一种方法是 A.K.发布。一种方法如下:
for (char index = 0; index < SIZE;)
{
String temp = scan.nextLine();
if (temp.length() != 1)
{
// This means their input was too big
}
else
{
// This means their input was one character
}
}
您也可以使用 scan.next().charAt(0);
这行代码只会从控制台中获取一个字符作为输入。
如果您有任何问题或这个答案不是您要找的,请在下面发表评论,我很乐意提供帮助。
关于java - 试图弄清楚如何只接受用户输入的 1 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55464133/