chciałbym użyć wyrażenia regularnego z Java.Regex znaleźć liczbę całkowitą w ciąg
Co chcę zrobić, to znaleźć pierwszą całkowitą w ciąg.
Przykład:
String = "the 14 dogs ate 12 bones"
Wrócimy 14.
String = "djakld;asjl14ajdka;sdj"
Czy też powrócić 14.
To, co mam tak daleko.
Pattern intsOnly = Pattern.compile("\\d*");
Matcher makeMatch = intsOnly.matcher("dadsad14 dssaf jfdkasl;fj");
makeMatch.find();
String inputInt = makeMatch.group();
System.out.println(inputInt);
Co robię źle?
To nadal przechwytuje liczby takie jak 099, na których java parseInt rzuci NumberFormatException. –
Muszę cię źle zrozumieć. '099' jest konwertowane na 99 przez' Integer.parseInt() ', patrz: http://pastie.org/1881188 – bgw
Czy to nadal działa, gdy liczba jest w ciągu znaków typu" 2-1 "? Poprawnie odnalazłby pierwszy mecz "2", ale drugi mecz "-1" jest niepoprawny, ponieważ tam jest - jest operatorem. Musiałbyś użyć czegoś nawet bardziej wyszukanego (ang. Lookbehind, który zignorowałby a + lub - jeśli bezpośrednio poprzedzająca rzecz jest również liczbą). – AJMansfield