Я пытаюсь проверить ввод, чтобы пользователю было разрешено вводить только 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