如何验证int的前导零?

时间:2019-05-18 05:02:31

标签: java validation

我正在尝试验证输入,以便仅允许用户输入具有9位数字的int。我当前的代码处理的是前导零,即大于9位的任何输入,但小于9位的则为空。

例如,它不应允许用户输入int 123。

下面的代码在数字长于9的情况下验证数字输入,但未考虑数字短于9的情况。

public void setSSN(int sSN) {

    String temp = "";

    do {
        temp = String.format ("%09d", sSN);
        if(temp.length() != 9) {
            sSN = Methods.getInt("Enter an 9 digits");
        }
    }while(temp.length() != 9);

    temp = temp.substring(0,3) + "-" + temp.substring(3,5) + "-" +temp.substring(5,9);
    JOptionPane.showMessageDialog(null, temp);
    SSN = sSN;
}

如果用户输入的int少于9位数字。由于String.format,它将填充其余的插槽并使其变为9位(我仅包括此位,因此它适用于前导零)。我不确定如何解决前导零以及确保输入正好是9位数字。

测试案例:

输入:123456789 输出:123-45-6789

输入:001234567 输出:001-23-4567

//下面是我不想要的

输入:12
输出:000-00-0012

2 个答案:

答案 0 :(得分:0)

要确定某人没有输入“ 000000123”吗?然后只需执行循环以将输入解析为数组并检查每个索引的值,并确保在索引0-3中没有输入重复的数字值(这将覆盖前四个索引)

答案 1 :(得分:0)

使用.length检查输入字符串的长度。如果string.legnth <9 {cout <<“对不起。请输入9个数字”}

或者类似的东西。