簡體   English   中英

使用Google Guava獲取字符串的前導數字

[英]Getting leading digits of a string using Google Guava

基本上,我有一些像

5 - Avenue Rd
9 - Bellamy
21 - Brimley
191 - Highway 27 Rocket

等等。 我正在尋找一種使用Google Guava返回起始數字的方法。 根據我的研究:

  • CharMatcher.DIGIT.retainFrom很不錯,但我希望它在第一個非數字字符處停止。
  • CharMatcher.DIGIT.trimLeadingFrom幾乎是我想要的,除了它返回字符串的另一部分(我想要的是一串數字)。

有任何想法嗎?

編輯:添加了另一個示例。

上面四個示例的預期輸出:

5
9
21
191

不太相等,但是

CharMatcher.DIGIT.negate().trimTrailingFrom(string);

或者-涉及更多一點,但這將適用於中間數字-

string.substring(0, CharMatcher.DIGIT.negate().indexIn(string));

或者,使用正則表達式,盡管意味着所有開銷-

string.replaceAll("^(\\d+).*$", "$1")

您為什么不只將“-”號上的字符串split() ,然后trim()並解析...

String test ="5 - Avenue Rd";
String[] out = test.split("-");
System.out.println(out[0].trim());

我們不需要框架來做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM