当前位置: 首页 > 知识库问答 >
问题:

如何使用if语句验证用户输入(仅名称/无数字)

养振濂
2023-03-14

下面是10个名字,然后使用系统打印出来。出来稍后打印。我在下面有一个if语句,当我输入一个数字时,它会警告我“不要输入数字”。

问题是,在警告提示后,我输入了10个名字,但数字打印出来作为数组中的第一个项目?然后把名字打印出来?

import java.io.*;


public class Input {

    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] myarray = new String[10];


        System.out.println("Enter a 10 names");


        for (int i = 0; i < 10; i++) {


            myarray[i] = br.readLine();
            if (!myarray[i].matches("[a-zA-Z_]+")) {
                System.out.println("Invalid name,please do not enter numbers");
            }
        }
        System.out.println("Here are your names");


        for (int i = 0; i < 10; i++) {

            System.out.println(myarray[i]);

        }
    }
}

共有1个答案

华宇
2023-03-14

问题是,当你拒绝一个值时,你在增加循环计数器,就好像你已经接受了它一样。

与其将输入写入数组,不如先检查它是否有效:

int i = 0;
while (i < 10) {
  String line = br.readLine();
  if (line.matches("[a-zA-Z_]+") {
    myarray[i++] = line;
  } else {
    System.out.println("Invalid name");
  }
}

请注意,i仅在将值写入数组时递增,并且优先于用于,因为迭代次数未知。

 类似资料:
  • 导入java.util.Scanner; 公开课POD1 { 更新 代码现在确实超过了4个字母单词,但即使单词以d开头,它也不会打印出大的d,即使它以d开头

  • 如何验证只有2位数字的输入数字,并允许用户使用JQuery输入点数字? 用户可以输入0到99个数字和点数字 比如( 0.1(3位) 3.14(4位数字) 98.1212178623445243(更多数字) 等......) https://jsfiddle.net/kwcft9bq/ 我试着用 但最后还是不行 有什么想法吗???非常感谢。

  • 问题内容: 我是从记录用户输入使用。我需要验证输入内容,例如: 必须为非负数 它必须是字母 …等等 最好的方法是什么? 问题答案: 示例1:验证正整数 这是一个用于int从输入中验证肯定的简单示例。 结果: 请注意,与更详细组合相比,使用起来要容易得多。通过合同,一个 保证,如果它,然后将安静地给你int,并不会引发任何。 示例2:同一令牌上有多个 请注意,上面的代码段包含一个语句,以使Scann

  • 我试图找到一个完整的模式列表,用于通过HTML5表单验证各种类型的输入,特别是、、等等,但我找不到任何模式。目前,这些输入验证的内置版本远非完美(甚至不检查输入的内容是否是电话号码)。所以我想知道,我可以使用哪些模式来验证用户在输入中输入了正确的格式? 以下是一些默认验证允许不允许的输入的例子: 这个字段允许在@后面有不正确域的电子邮件,它允许地址以破折号或句号开始或结束,这也是不允许的。因此,是

  • 我正在创建一个生产应用程序。 现在我已经创建了我的的一部分 此在登录时会生成一个对象,但我不热衷于通过HTTP标头发送未加密/未加密。 为了让您了解我的: 登录时: 正如您现在看到的(因为我还不确定如何处理它),我只查找用户名,然后检查用户名是否存在。 我的问题很简单,如何加密密码,然后在密码到达API后进行验证?

  • 我很难想出如何正确使用扫描仪来验证用户输入。例如,程序需要用户输入int,用户只能输入正数,如果用户输入“apple”、“delicious apple”或负数,问题将显示错误消息。我尝试了下面的代码,然后我发现了一个令人不安的问题,“那不是一个数字!”我不知道是什么引起了这些问题。。。。 我在“number=sc.nextInt()”下面加了一行代码,意外地解决了这个问题,现在我的代码变成: 这