java - 试图弄清楚如何只接受用户输入的 1 个字符

标签 java arrays string user-input

我不确定如何验证用户只输入了一个字符。我知道我的长度检查结果根本不正确。我只是用它来填充。请帮忙。为了找到答案,我尝试了很多不同的方法,并在这个网站和其他网站上搜索了好几天。

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/

相关文章:

javascript - 如何遍历由二维数组表示的板上单元格的所有邻居?

ios - Swift 中的键值观察不显示数组中的插入和删除

java - 在返回变量之前检查数组中的所有位置

java - SPARQL:未解析的前缀名称:dbpprop:作者

java - 如何在 Java 中使用 & 运算符?移植C代码

.NET 内部编码

c - char s[] 和 char *s 有什么区别?

c++ - 无法将字符串类型转换为 bool C++

java - 无法使用 jsp 文件名作为 RequestMapping 值解析 WEB-INF/文件夹内的 View

java - 远程服务拒绝权限 onBind