Не удается отследить, почему этот код регулярного выражения работает бесконечно - PullRequest
0 голосов
/ 06 октября 2011

Я только что скопировал с oracle.com веб-сайт, внес небольшие изменения (изменил консоль на System.out) и скомпилировал.

Но он работает бесконечно.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

class RegexTest {

    public static void main(String[] args){

        while (true) {

            Pattern pattern = 
            Pattern.compile("int");

            Matcher matcher = 
            pattern.matcher("int void int mathint");

            boolean found = false;
            while (matcher.find()) {
                System.out.printf("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.printf("No match found.%n");
            }
        }
    }
}

Ответы [ 2 ]

3 голосов
/ 06 октября 2011

while(true) будет работать до тех пор, пока вы break; не выйдете.

2 голосов
/ 06 октября 2011

хорошо, у вас есть while (true) { в вашем коде - это может быть бесконечный цикл: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...