Я пытаюсь проверить строку, введенную пользователем. Пользователь должен ввести строку из 7 символов; первые 3 символа строки должны быть буквами, а последние 4 должны быть цифрами.
Я написал этот фрагмент кода (как метод), но по какой-то причине он принимает первый символ в виде числа (которое, как предполагается, является буквой), а остальные - числа. Например:
Please enter word : **1gy2345**
Это введет l oop, как требуется, и перейдет к следующему методу в main.
Если пользователь вводит слово, длина которого больше 7, он попросит его ввести правильное слово.
Например:
Please enter word : **bob12345**
The word entered is invalid. Please enter a word beginning with 3 letters and ending with 4 numbers ( The word must be 7 characters long ).
Вот мой код:
public static final String solicitationMessage = " Please enter word ";
public static final String errorMessage = " The word entered is invalid. Please enter a word beginning with 3 letters and ending with 4 numbers ( The word must be 7 characters long ).
public static final int lengthOfString = 7;
public static String validateString(String solicitationMessage, String errorMessage, int lengthOfString) {
System.out.print(solicitationMessage);
String word = keyboard.nextLine();
while (!( word.length() == lengthOfString )) {
if (((word.charAt(0) <= 'a' || word.charAt(0) >= 'z') || (word.charAt(1) <= 'a' || word.charAt(1) >= 'z')
|| (word.charAt(2) <= 'a' || word.charAt(2) >= 'z'))) {
System.out.print(errorMessage);
System.out.print(solicitationMessage);
word = keyboard.nextLine();
}
}
return word;
}
Однако, если я введу строку выше 7 предельного символа, он спросит меня снова введите правильную строку, как это должно быть.
Использование регулярных выражений не допускается.
Любая помощь?