输入错误后如何让用户重试

时间:2019-03-06 20:14:23

标签: java validation hex user-input

在用户输入2位数的十六进制之后,程序将继续执行,除非他们输入1位数或3位数或更高的十六进制,但是我希望用户在用户输入控制台中的第一个“无效”消息之后再次尝试第二次输入不正确的值,并且不会被“无效”消息阻止。

import java.util.Scanner;

public class Dance6 {
    public static void main(final String[] args) {
        Scanner sc = new Scanner(System.in);
        String hexadecimal;
        System.out.println("Please enter a 2-digit hexadecimal value : ");
        hexadecimal = sc.nextLine();

        if (hexadecimal.length() != 2) {
            System.out.println("Invalid input, please try again : ");
            sc.next();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

此if语句:

 if (hexadecimal.length() != 2) {
   System.out.println("Invalid input, please try again : ");
   sc.next();
 }

仅执行一次。
您需要一个循环验证输入,直到输入有效:

 while (hexadecimal.length() != 2) {
     System.out.println("Invalid input, please try again : ");
     hexadecimal = sc.nextLine();
 }

答案 1 :(得分:0)

您应该为此使用循环。让用户再试一次,直到他输入有效的字符串:

Scanner sc = new Scanner(System.in);
System.out.println("Please enter a 2-digit hexadecimal value : ");
String hexadecimal = sc.nextLine();
while (hexadecimal.length() != 2) {
    System.out.println("Invalid input, please try again: ");
    hexadecimal = sc.nextLine();
}
System.out.println("You entered: " + hexadecimal);