Почему ниже код работает прекрасныйПочему Matcher.group() бросает незаконное государственное исключение?
Matcher reg = Pattern.compile("(A|B)\\w{2}(C|D)").matcher("");
while ((line=reader.readLine()) != null)
{
if (!loading || reg.reset(line).matches())
{
if (reg.reset(line).matches()) {
String id = reg.group(1);
}
}
}
но
while ((line=reader.readLine()) != null)
{
if (!loading || reg.reset(line).matches())
{
String id = reg.group(1);
}
}
бросает IllegalSyntaxException?
Я был удивлен, потому что я уже вызываю совпадения в условии if. Ожидается, что он возвращает строку, соответствующую группе, вместо этого выдает исключение.
java.lang.IllegalStateException: No match found
Что мне не хватает?
ошибка говорит все: - _No match found_ – rock321987
Похоже, что '! Loading' истинно, поэтому' reg.reset (line) .matches() 'даже не будет выполнен. – Pshemo
Какова ценность 'loading'? –