public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String regex = "[a-zA-Z ]+$";
String regex1 = "\\d[0-9]|[1-9]";
String regex2 = "^[a-zA-Z0-9 ]+$";
String petName;
StringBuilder output = new StringBuilder();
do {
System.out.print("\nHow Many Pet do you have? Give from 1-3:");
petName = input.nextLine();
if (petName.isEmpty()) {
System.out.println("Number field should not be Empty.");
} else if (!petName.matches(regex1)) {
System.out.println("Please Enter A Valid Number!");
}
} while (!petName.matches(regex1));
do {
Integer.parseInt(petName);
String[] pets = new String[Integer.parseInt(petName)];
System.out.print("\nList Down All Your Pet Names:\n");
for (int i = 0; i < pets.length; i++) {
System.out.print("\nPET" + (i + 1) + ":");
pets[i] = input.nextLine();
if (pets[i].isEmpty()) {
System.out.print("String field should not be Empty.");
} else if (!pets[i].matches(regex)) {
System.out.print("Please input a valid String.");
}
}
output.append("\nThese Are The List Of The Pets You Have:");
for (int i = 0; i < pets.length; i++) {
output.append("\nPET:").append(i + 1).append(" ").append(pets);
}
} while (!petName.matches(regex));
System.out.println(output);
}
У меня возникла небольшая проблема с вышеуказанными кодами.Подтверждение ввода пользователя под forloop
Что я хочу, если я ввешу целое число, тогда оно предложит мне это сообщение «Пожалуйста, введите допустимую строку» или если я ничего не набрал в поле, тогда он подскажет мне это другое сообщение «Строковое поле должно не пусто ». Но что произойдет, даже если я наберу строковое значение в поле, тогда он все еще запрашивает сообщение «Пожалуйста, введите действительную строку», и цикл все равно продолжает делать то же самое снова и снова при каждом нажатии кнопки ввода.
Что подразумевается под этим регулярным выражением '' [a-zA-Z] + $ "'? Добавьте пример ввода, используемый здесь. – AxelH
для (int i = 0; i
- это код, который я использую для проверки строк. –