繁体   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