Java 如何控制用户在输入提示中输入多少字母和数字?

Java 如何控制用户在输入提示中输入多少字母和数字?,java,Java,我是编程新手,我们被分配了第一个任务!我的整个代码运行良好,但我的问题是: 我们必须提示用户输入由2个字母和3个数字组成的帐户ID 到目前为止,我只有一个基本的输入/输出提示 //variables String myID; //inputs System.out.println("Enter your ID:"); myID = input.nextLine(); 因此,它所做的一切就是让用户输入他们想要的字母和数字的数量,以任意顺序和长度。我更不明白如何“控制”用户的输入 正如您所说

我是编程新手,我们被分配了第一个任务!我的整个代码运行良好,但我的问题是:

我们必须提示用户输入由2个字母和3个数字组成的帐户ID

到目前为止,我只有一个基本的输入/输出提示

//variables

String myID;

//inputs

System.out.println("Enter your ID:");
myID = input.nextLine();

因此,它所做的一切就是让用户输入他们想要的字母和数字的数量,以任意顺序和长度。我更不明白如何“控制”用户的输入

正如您所说,您不知道
regex
,我编写此代码是为了在
的同时循环并检查每个字符是字母还是数字。系统将提示用户提供帐号,直到输入有效帐号

import java.util.Scanner;

class LinearArray{

    public static void main(String args[]){

        Scanner input = new Scanner(System.in);
        boolean isIdValid = false;
        String myId;

        do{
            System.out.println("account ID that consists of 2 letters followed by 3 digits");           
            myId = input.nextLine();
            //Check if the length is 5
            if (myId.length() == 5) {
                //Check first two letters are character and next three are digits
                if(Character.isAlphabetic(myId.charAt(0))
                && Character.isAlphabetic(myId.charAt(1))
                && Character.isDigit(myId.charAt(2))
                && Character.isDigit(myId.charAt(3))
                && Character.isDigit(myId.charAt(4))) {
                    isIdValid = true;
                }
             }
           }while(!isIdValid);
        }       
    }

您无法控制用户的输入。您可以控制程序的响应方式。[有人把它做成一张激励海报。]检查输入是否有效的方法是使用regex@shmosel哦,这更有道理。我该怎么做?我们没有学习循环或尝试catch语句yet@shmosel我试图理解如何思考逻辑through@SmolCoder那么你还没有做过正则表达式?您不应该多次重新创建
扫描仪
;在循环之前只创建一次。此外,您不需要
isIdValid
变量。您可以改为使用
do
-
while
循环,如
do{…}while(myId.length()==5&&Character.isAlphabetic(myId.charAt(0))&&&&……)do{…}while(!(myId.length()==5&&Character.isAlphabetic(myId.charAt(0))&&&&……)
@ChaiT.Rex是的,我刚刚创建了一个扫描仪,并将
while
更改为
do while
。让条件保持原样以提高可读性哇!我的老师确实简短地谈到了布尔语,但我不知道如何使用它。当我今天醒来的时候,我正在考虑在我的代码中使用布尔值。所以你可以把方法放在其他方法里面?我也不知道我们有isAlphabetic和isDigit,我以为它只有int和char,为什么在上面的if语句中写isIdValid=true;?为什么不是趁现在(isIdValid)?