1

基本上,我有一些字符串,比如

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

等等。我正在寻找一种使用 GoogleGuava返回开头数字的方法。根据我的研究:

  • CharMatcher.DIGIT.retainFrom很好,但我希望它停在第一个非数字字符处。
  • CharMatcher.DIGIT.trimLeadingFrom几乎是我想要的,除了它返回我想要一串数字的字符串的另一部分。

有任何想法吗?

编辑:添加了另一个例子。

上述四个示例的预期输出:

5
9
21
191
4

2 回答 2

4

不完全等价,但

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

或者 - 涉及更多一点,但这将适用于中间数字 -

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

或者,使用正则表达式,尽管所有开销都意味着——

string.replaceAll("^(\\d+).*$", "$1")
于 2012-11-04T20:03:46.167 回答
1

你为什么不只是split()“-”符号上的字符串然后trim()解析......

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

我们不需要一个框架来做到这一点。

于 2012-11-04T20:03:56.110 回答