Внутри класса у меня есть шаблон private Pattern lossWer = Pattern.compile("^\\d+ \\d+ (\\d+).*")
.Одна из функций выглядит следующим образом:
public double[] getWer(){
double[] wer = new double[someStrings.size()];
Matcher m;
for(int i = 0; i < wer.length; i++){
m = lossWer.matcher(someStrings.get(i));
wer[i] = Double.parseDouble(m.group(1));
}
return wer;
}
Вызов этого не удастся с java.lang.IllegalStateException: No match found
.Когда я изменяю это на это, оно работает:
public double[] getWer(){
double[] wer = new double[someStrings.size()];
Matcher m;
for(int i = 0; i < wer.length; i++){
m = lossWer.matcher(someStrings.get(i));
if(!m.matches())
;
wer[i] = Double.parseDouble(m.group(1));
}
return wer;
}
Конечно, мое приложение не просто использует пустую точку с запятой для этой строки, но я иллюстрирую, что строка здесь ничего не делаетно позволяет программе работать без ошибок.Почему строки совпадают без ошибок во втором примере, а не в первом?