#java #arrays #vector
Вопрос:
Я начал писать код пару месяцев назад и не могу понять, как решить эту проблему. Вот о чем спрашивают..
- Попросите пользователя ввести фразу. Удалите все пробелы из фразы и переведите все буквы в верхний регистр.
- Создайте вектор для хранения всех букв фразы в одной позиции, вектор должен быть точно такого же размера, как и фраза.
- Покажите содержимое вектора на экране.
Я врезался в стену, потому что не могу начать с вектора из-за удаления пробелов и верхнего регистра пункта 1, но если я начну с обычной строки, я не знаю, как разделить буквы на буквы, как указано в пункте 2.
Scanner entrada = new Scanner(System.in);
System.out.println("Type a phrase.");
String phrase = entrada.nextLine();
phrase = phrase.replace(" ", "");
phrase = phrase.toUpperCase();
System.out.println("");
System.out.println(phrase);
int characters = phrase.length();
System.out.println("The phrase has" characters "characters");
String[] vet = new String[characters];
for (int i = 0; i < characters; i ) {
Комментарии:
1. См. String.charAt()
2. Что вы подразумеваете под этим: сохраните каждую букву фразы в одном положении ? Почему вам нужно использовать устаревший
Vector
класс, если это должен быть список/arraylist?3. @AlexRudenko Я полагаю, что «вектор» — это не класс Vector, а фраза «вектор». Итак, массив в порядке.
Ответ №1:
phrase.toCharArray()
должно сработать.
В случае, если вы хотите, чтобы символы были сохранены в списке:
List<Character> list = phrase.chars()
.mapToObj(c -> (char) c).collect(Collectors.toList());
Комментарии:
1. фраза. toCharArray() сработало, спасибо, приятель
Ответ №2:
Ваши учебные материалы кажутся немного устаревшими. @user16632363 прав в том, как получить доступ к каждому char
из них . Сделав List<Character> allCharacters = new ArrayList<>();
это раньше. теперь вы можете сделать:
int numChars = phrase.length();
for(int i = 0;i < numChars;i ) {
allChars.add(Character.valueOf(phrase.charAt(i)));
}