Mam ciąg formatu „[232] .......” Chcę wyodrębnić 232 z ciągu, zrobiłem to
public static int getNumber(String str) {
Pattern pattern = Pattern.compile("\[([0-9]+)\]");
Matcher matcher = pattern.matcher(str);
int number = 0;
while (matcher.find()) {
number = Integer.parseInt(matcher.group());
}
return number;
}
ale to nie działa, mam następujący wyjątek:
Exception in thread "main" java.lang.NumberFormatException: For input string: "[232]"
Ktoś wie, jak mogę rozwiązać ten problem i czy istnieje bardziej skuteczny sposób na wykonanie tego rodzaju dopasowywania wzorców w java?
Odpowiedzi:
6 dla odpowiedzi № 1group()
bez żadnych parametrów zwraca całe dopasowanie (odpowiednik group(0)
). Obejmuje to nawiasy kwadratowe określone w wyrażeniu regularnym.
Aby wyodrębnić liczbę, podaj 1
aby zwrócić tylko pierwszą grupę przechwytywania w wyrażeniu regularnym ( ([0-9]+)
):
number = Integer.parseInt(matcher.group(1));