基本上,我有一些像
这样的字符串5 - Avenue Rd
9 - Bellamy
21 - Brimley
191 - Highway 27 Rocket
等等。我正在寻找使用Google Guava
返回开头数字的方法。根据我的研究:
CharMatcher.DIGIT.retainFrom
很不错,但我想让它停在第一个非数字字符处。 CharMatcher.DIGIT.trimLeadingFrom
几乎是我想要的,除了它返回字符串的另一部分,我想要一串数字。 有什么想法吗?
编辑:又添了一个例子。
上述四个例子的预期输出:
5
9
21
191
答案 0 :(得分:4)
不太相同,但
CharMatcher.DIGIT.negate().trimTrailingFrom(string);
或者 - 更多涉及,但这将适用于中间数字 -
string.substring(0, CharMatcher.DIGIT.negate().indexIn(string));
或者,使用正则表达式,尽管有所有开销 -
string.replaceAll("^(\\d+).*$", "$1")
答案 1 :(得分:1)
为什么不只是split()
“ - ”符号上的字符串,然后是trim()
并解析......
String test ="5 - Avenue Rd";
String[] out = test.split("-");
System.out.println(out[0].trim());
我们不需要一个框架来做到这一点。