Есть вот такой небольшой код :
if(newMatcher.find()) {
System.out.println("Введите текст в котором хотите совершить поиск : ");
Scanner newScaner = new Scanner(System.in);
String str = newScaner.nextLine();
String text = new String(str);
System.out.println("Теперь введите слово, которое хотите найти");
Scanner newScaner2 = new Scanner(System.in);
String str2 = newScaner.nextLine();
Pattern newPattern = Pattern.compile(str2);
Matcher newMatcher = newPattern.matcher(text);
if(newMatcher.find()) {
while(newMatcher.find()) {
System.out.println(newMatcher.group());
}
}else {
System.out.println("Нет совпадений!");
}
Почему, когда в тексте есть 3 слова, которые должна найти и вывести на экран программа, она выводит на одно меньше?
Этому способствует завернутый while в if, Почему так работает? Ведь без if выводит все 3.