我想使用模式和匹配器來確定給定的字符串是否有2位數之間的空格。例如「5 1」應該返回爲真,「51」應該返回爲假。起初,我正在使用string.replaceAll與正則表達式,它運作良好,但移動到模式我似乎無法讓它的工作。使用模式和匹配器查找數字
String findDigit = "5 1/3";
String regex = "(\\d) +(\\d)";
findDigit = findDigit.replaceAll(regex, "$1 $2");
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(findDigit);
System.out.println(m.matches());
System.out.println(m.hitEnd());
我第一次開始這個。 replaceAll可以毫無困難地工作並刪除多餘的空格,但m.matches和m.hitEnd都返回false。後來我想我可能會做錯事,所以我簡單的情況下,只是
String findDigit = "5";
String regex = "\\d";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(findDigit);
System.out.println(m.matches());
System.out.println(m.hitEnd());
和匹配回來真(明顯),但是當我把它改成這樣
String findDigit = "5 3";
String regex = "\\d";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(findDigit);
System.out.println(m.matches());
System.out.println(m.hitEnd());
回來都假的。所以我想我的主要問題是如何確定在我的字符串中有任何數字,然後更具體地說,我該如何確定字符串中是否有數字空格。我以爲那是命中註定,但我想我錯了。提前致謝。
爲什麼-1這麼快,沒有解釋,爲什麼呢? – jhnewkirk
好吧,謝謝誰投票支持我,現在我意識到我正在愚蠢...... m.find()。 *在桌子上打頭* – jhnewkirk