Вводится одна строка целиком. Необходимо вывести те слова данной строки, которые начинаются с буквы из интервала от a до h.
Словом считается совокупность букв и символов от пробела до пробела. Слова могут быть как в верхнем, так и нижнем регистре.
Выводить слова необходимо каждый раз с новой строки.
Пример
Ввод: It becomes dark very fast here
Вывод: becomes
dark
fast
here
Вроде бы я как я понял, сначала нужно перевести строку в массив строк с помощью регулярного выражения, а затем нужен цикл, в котором перебирая строки в массиве, с помощью charAt() нужно получить первую букву, которую уже проверять на верность условию и если всё ок - выводить. Вот как раз цикл и не могу придумать...подскажите, как лучше его сделать?
public class TestClass {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
String[] strings = s.split(" ");
System.out.println(Arrays.toString(strings));
// вероятно, здесь должен быть цикл
}
}
for(String str : strings)
if(str.matches("^[a-h]\\w*"))
System.out.println(str);
Если нужно, чтобы включались слова, оканчивающиеся на 's
вместе с одним словом, которое идёт сразу после вышеупомянутого:
String s = "dark's ana here come shot";
Pattern pattern = Pattern.compile("(?<=^| )(\\w+'s )?[a-h]\\w*(?= |$)");
Matcher matcher = pattern.matcher(s);
while(matcher.find())
System.out.println(matcher.group());
Получаем из строки массив слов, и помещаем его в TreeSet
. Применяем метод TreeSet.subSet
:
String str = "It becomes dark very fast here";
TreeSet<String> set = Arrays.stream(str.split("\\s+"))
.collect(Collectors.toCollection(TreeSet::new));
// поиск слов в сете от 'a' до 'h'
System.out.println(set.subSet("a", "hz")); // [becomes, dark, fast, here]
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я когда хочу админом войти на страницу в своем проекте он выдает ошибку 404
Я создаю двухмерные штрихкоды с помощью API-интерфейса iText, но они попадают в PDF-документ как растровые изображения, а во время печати на принтерах...
Есть класс Person, он имеет три поля - name, age и surnameЯ создаю HashMap из Person'ов и хочу вытащить все surname записать в отдельный лист
В java создаю такую конструкциюПо документации метод entrySet возвращает объект типа Set, но под отладчиком что-то непонятное