3 回答

TA貢獻1786條經(jīng)驗 獲得超13個贊
有很多方法可以做到這一點。一種方式是A.K.發(fā)布的內(nèi)容。一種方式如下:
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);
如果您有任何疑問或此答案不是您要找的,請在下面發(fā)表評論,我將很樂意為您提供幫助。

TA貢獻1812條經(jīng)驗 獲得超5個贊
輸入僅在用戶按下后放在緩沖區(qū)上,因此在現(xiàn)實中它始終是一次行。您應(yīng)該始終將代碼與現(xiàn)實保持一致,因此請始終按行讀取用戶輸入。Enter
此實用程序方法可能使用有用的:
private static String read(Scanner scanner, String message, String regex) {
System.out.println(message);
String result = "";
while (true) {
result = scanner.nextLine();
if (result.matches(regex)) {
break;
}
System.out.println("Invalid input. " + message);
}
}
你可以這樣稱呼它:
String letter = read(scan, "Please enter Letter #" + (index + 1)", "[A-Za-z]");
該方法在僅輸入一個字母之前不會返回,并且它將返回該字母。read()

TA貢獻1864條經(jīng)驗 獲得超6個贊
一種解決方案是這樣的:
Scanner sc = new Scanner(System.in);
System.out.println("Enter char");
String in = sc.next();
while(in.length()!=1){
System.out.println("Enter only a single char");
in = sc.next();
}
// Print the read value
System.out.println("Your char is = " + in);
如果您還想檢查它是否是字母而不是數(shù)字,只需在 while 循環(huán)中添加一個檢查即可。
添加回答
舉報