Как мне проверить ведущие нули для int? - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь проверить ввод, чтобы пользователю было разрешено вводить только int, состоящее из 9 цифр.Мой текущий код обрабатывает начальные нули, любой ввод, который больше 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 цифр.Он заполнил бы остальные слоты и сделал бы его 9 цифрами из-за String.format (я только включаю это, таким образом это работало бы для ведущих нулей).Я не уверен, как обойти эти лидирующие нули, а также убедиться, что на входе ровно 9 цифр.

ИСПЫТАНИЯ:

Вход: 123456789 Выход: 123-45-6789

Вход: 001234567 Выход: 001-23-4567

// Ниже я не хочу

Вход: 12
Выход: 000-00-0012

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Используйте .length для проверки длины входной строки. Если string.legnth <9 {cout << "извините. Пожалуйста, введите 9 цифр"} </p>

Или что-то в этом роде.

0 голосов
/ 18 мая 2019

То есть, чтобы убедиться, что кто-то не вводит "000000123"? Затем просто выполните цикл, чтобы проанализировать входные данные в виде массива, проверить значение каждого индекса и убедиться, что в повторяющихся цифрах, введенных в индекс 0-3, нет значения (которое будет охватывать вас для первых 4 индексов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...