Условие:
Написать программу, которая ищет в строке, введенной пользователем, и выводит на экран слова, начинающиеся с определенной буквы. Буква вводится пользователем.
Как осуществлять ввод вывод я знаю. Дальше, насколько я понимаю, нужно посимвольно разбить слова и проверять все символы после пробела и если буква после пробела такая же, как заданная, то выводить все символы до следующего пробела. Но как это всё прописать в коде, я слабо представляю.
Данную программу я вижу вот так:
public static void main(String[] args) {
System.out.println("Введите строку:");
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
System.out.println("Введите букву:");
String letter = scanner.next();
Pattern pattern = Pattern.compile("\\p{IsCyrillic}+");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
String word = matcher.group();
if(word.toLowerCase().startsWith(letter))
System.out.println(word);
}
}
1) Сканируем две строки с помощью Scanner
.
2) С помощью .split()
разделяем строку на слова, которые заносятся в массив String[] arrayString
(.split()
возвращает массив).
3) С помощью for-each loop (for (String word : arrayString)
) проверяем каждый элемент в массиве (т.к. слово может быть с заглавной букву - используем .toLowerCase()
), начинается ли слово с буквы (.startsWith(letter)
), которая была введена пользователем ранее.
4) Если такое слово найдено, то выводим его на экран.
Можно на примитивном уровне:
String string = "cat bee dog cow cat dog fly";
char firstLetter = 'c';
char[] chars = string.toCharArray();
String word = "";
for (int i = 0; i < chars.length - 1; i++) {
if (chars[i] == ' ' && !word.equals("")) {
if (word.toCharArray()[0] == firstLetter) {
System.out.println(word);
}
word = "";
continue;
}
word = word.concat(String.valueOf(chars[i]));
}
Результат
cat
cow
cat
Возможно, из-за того, что первая буква вводится пользователем строку
if (word.toCharArray()[0] == firstLetter)
надо будет заменить на
if (String.valueOf(word.toCharArray()[0]).equals(firstLetter))
Ещё лучше, заменить её сразу на
if (word.startsWith(prefix)) //String prefix = "ca"; --> result: cat cat
Тогда будет проверяться начинается ли слово с введенной строки, не только буквы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Необходимо реализовать web приложение с голосованием используя springКандидаты загружаются в базу данных через специальную форму
Есть проект "написанный" в Buildbox и импортированный в Android StudioВ самой студии была создана Activity с кнопкой, при нажатии на которую открывается...