Tôi muốn sử dụng regex với Java.Regex để tìm số nguyên trong một chuỗi
Điều tôi muốn làm là tìm số nguyên đầu tiên trong chuỗi.
Ví dụ:
String = "the 14 dogs ate 12 bones"
Would return 14.
String = "djakld;asjl14ajdka;sdj"
cũng Would return 14.
Đây là những gì tôi có cho đến nay.
Pattern intsOnly = Pattern.compile("\\d*");
Matcher makeMatch = intsOnly.matcher("dadsad14 dssaf jfdkasl;fj");
makeMatch.find();
String inputInt = makeMatch.group();
System.out.println(inputInt);
Tôi đang làm gì sai?
Điều này vẫn giữ số như 099, trong đó java parseInt sẽ ném NumberFormatException. –
Tôi phải hiểu lầm bạn. '099' được chuyển đổi thành 99 bằng' Integer.parseInt() ', xem: http://pastie.org/1881188 – bgw
Điều này vẫn hoạt động khi con số nằm trong một chuỗi như" 2-1 "? Nó sẽ tìm đúng kết quả đầu tiên "2", nhưng trận đấu thứ hai "-1" không chính xác vì có - là toán tử. Bạn sẽ cần phải sử dụng một cái gì đó thậm chí fancier (liên quan đến một lookbehind rằng sẽ disinclude một + hoặc - nếu ngay trước đó cũng là một số) – AJMansfield