Member 13670663 Ответов: 1

Как я могу прочитать отдельные символы в строке и определить, являются ли они определенными символами из таблицы ascii?


Я пытаюсь заставить пользователя ввести пароль из 6 символов. Первые 3 символа должны быть заглавными буквами, а последние 3 символа-цифрами. Если это неправильно, они должны повторно ввести пароль. Наконец, пароль следует превратить в "секретный пароль", увеличив 6 символов на 2 (в таблице ascii), а затем распечатать этот новый пароль. Я получаю ошибку во время выполнения, и я не понимаю, почему. Может ли кто-нибудь решить эту проблему?

String password = "", newPassword = password + 2;
		char char1 = password.charAt(1), char2 = password.charAt(2), char3 = password.charAt(3), char4 = password.charAt(4),
				char5 = password.charAt(5), char6 = password.charAt(6);
		
		System.out.println("Enter a 6-character password. The first three characters should be capital letters of "
				+ "the alphabet\nand the last three should be numbers from 1 to 9.");
		password = keyboard.next();
		
		if((char1 != 65 && !(char1 < 90)) || (char2 != 65 && !(char2 < 90)) || (char3 != 65 && !(char3 < 90)))
			System.out.println("Incorrect characters. Re-enter password.");
		password = keyboard.next();
		
		if((char4 != 1 && !(char4 < 9)) || (char5 != 1 && !(char5 < 9)) || (char6 != 1 && !(char6 < 9)))
			System.out.println("Incorrect characters. Re-enter password.");
		password = keyboard.next();
		
			System.out.print(password + "\n" + newPassword);


Что я уже пробовал:

Я попытался изменить объявление символьной переменной и избавиться от пароля.charAt(1). Я думаю, что это то, что дает мне проблему, но я не уверен, как заставить его читать каждый символ.

PIEBALDconsult

Было бы неплохо, если бы вы предоставили текст ошибки и входные данные, которые привели к ней.
Я не думаю, что вам нужно читать каждый символ отдельно.

1 Ответов

Рейтинг:
2

Maciej Los

Ява хорошо знает метод toCharArray() [^]

String password = "password123456";
char[] characters = password.toCharArray();
for(int i=0;i<characters.length;i++)
{
    System.out.println(characters[i]);
}


Примечание: индекс массива начинается от 0 до количества элементов в массиве -1.

Видеть: Массивы Java[^]