Я изменил следующий код из Oracle Java Tutorials :
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexTestHarness {
public static void main(String[] args){
while (true) {
Pattern pattern = Pattern.compile("foo");
Matcher matcher = pattern.matcher("foo foo foo");
boolean found = false;
while (matcher.find()) {
System.out.format("I found the text \"%s\" starting at " + "index %d and ending at index %d.%n", matcher.group(), matcher.start(), matcher.end());
found = true;
}
if(!found){
System.out.format("No match found.%n");
}
}
}
}
Я пытаюсь научиться использовать регулярные выражения в Java.(Я чувствую себя довольно уверенно относительно регулярных выражений, но не с классами Java для их использования.) Я использую Eclipse, с которым я также не очень знаком.Я не мог понять, как заставить консоль не инициализироваться нулем (как предупреждает учебник), поэтому я удалил ее и просто использую статические значения и перекомпилирую каждый раз, когда я хочу попробовать что-то новое.
Когда я запускаю этот код, я получаю бесконечный цикл:
I found the text "foo" starting at index 0 and ending at index 3.
I found the text "foo" starting at index 4 and ending at index 7.
I found the text "foo" starting at index 8 and ending at index 11.
I found the text "foo" starting at index 0 and ending at index 3.
и т. Д., И т. Д., И т. Д. До тех пор, пока я не нажму на завершение
Что я делаю неправильно?
Спасибо.
Неважно ...>. <Почему-то я не видел бесконечный цикл снаружи.Я все время предполагал, что проблема была в другом цикле. </p>