Warum den Code unten funktionierenWarum löst Matcher.group() eine unzulässige Ausnahme aus?
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);
}
}
}
aber
while ((line=reader.readLine()) != null)
{
if (!loading || reg.reset(line).matches())
{
String id = reg.group(1);
}
}
wirft IllegalSyntaxException?
Ich war überrascht, weil ich bereits Matches in der if-Bedingung aufruft. Es wird erwartet, dass die Zeichenfolge zurückgegeben wird, die der Gruppe entspricht. Stattdessen wird die Ausnahme ausgelöst.
java.lang.IllegalStateException: No match found
Was fehlt mir?
Der Fehler sagt alles: - _Keine Übereinstimmung gefunden_ – rock321987
Sieht aus wie '! Loading' ist wahr, so' reg.reset (line) .matches() 'wird nicht einmal ausgeführt werden. – Pshemo
Was ist der Wert von 'loading'? –