gpt4 book ai didi

java - java中如何限制用户输入4位pin

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:08 26 4
gpt4 key购买 nike

我想从用户那里获取 PIN 码的输入,并且我想限制用户只能获取 4 位 PIN 码。我尝试过[但是当我输入 0001 时它不起作用,它再次要求输入 4 位数字密码,然后请解决它

void pin1()
{
//int pin;
for(int i=1;i<=1000;i++)
{
try
{
pin=obj.nextInt();
if(pin<=9999 && pin>=1000)
{
}
else
{
System.out.println("Pin must be four digit");
pin1();
}

break;
}
catch(InputMismatchException e)
{
obj.next();
System.out.println("Error use numbers not alphabets or characters");
}
}
}

最佳答案

您选择的图钉类型错误。作为 int 值,00011 是相同的值,但后者是无效引脚,而前者是有效引脚。

您应该使用String来存储pin。这意味着您应该调用 nextLine 而不是 nextInt:

String pin = obj.nextLine();

要检查此 pin 是否包含 4 位数字,我们可以使用正则表达式 \d{4}

Matcher m = Pattern.compile("\\d{4}").matcher(pin);
if (m.matches()) {
System.out.println("You have entered a 4-digit pin");
} else {
System.out.println("You have not entered a 4-digit pin");
}

或者,您可以使用 for 循环进行检查:

if (pin.length() != 4) {
System.out.println("You have not entered a 4-digit pin");
} else {
boolean allDigits = true;
for (int i = 0 ; i < 4 ; i++) {
if (!Character.isDigit(pin.charAt(i))) {
allDigits = false;
break;
}
}
if (allDigits) {
// pin is valid
} else {
System.out.println("Error use numbers not alphabets or characters");
}
}

关于java - java中如何限制用户输入4位pin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53350028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com