我正在寻找一种从String中拉出最后一个字符的方法,无论大小如何.让我们把这些字符串放到示例中:
"abcd: efg: 1006746"
"bhddy: nshhf36: 1006754"
"hfquv: nd: 5894254"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,完全随机的字符串,但它们最后有7个数字.我怎么能拿这7个号码?
编辑:
我只是意识到String[] string = s.split(": ");
在这里工作得很好,只要我在数字中调用字符串[2],在中间调用字符串[1].
Jon*_*eet 137
怎么样:
String numbers = text.substring(text.length() - 7);
Run Code Online (Sandbox Code Playgroud)
这假定有是 7个字符末,当然.如果你传递"12345",它将抛出异常.你可以这样解决:
String numbers = text.substring(Math.max(0, text.length() - 7));
Run Code Online (Sandbox Code Playgroud)
要么
String numbers = text.length() <= 7 ? text : text.substring(text.length() - 7);
Run Code Online (Sandbox Code Playgroud)
请注意,这仍然没有进行任何验证,结果字符串包含数字 - 如果text
为null ,它仍将抛出异常.
Chr*_*odd 93
你可以做很多事情.
s.substring(s.lastIndexOf(':') + 1);
Run Code Online (Sandbox Code Playgroud)
在最后一次冒号之后会得到一切.
s.substring(s.lastIndexOf(' ') + 1);
Run Code Online (Sandbox Code Playgroud)
最后一个空间后的一切.
String numbers[] = s.split("[^0-9]+");
Run Code Online (Sandbox Code Playgroud)
分割所有数字序列; 数字数组的最后一个元素可能就是你想要的.
Ric*_*lis 48
这个问题是"Java String Right"的Google搜索结果.
令人惊讶的是,还没有人提到Apache Commons StringUtils.right():
String numbers = org.apache.commons.lang.StringUtils.right( text, 7 );
Run Code Online (Sandbox Code Playgroud)
这也处理了text
null 的情况,其中许多其他答案会抛出NullPointerException.
She*_*han 22
这段代码非常适合我:
String numbers = text.substring(Math.max(0, text.length() - 7));
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用以下单行代码实现它:
String numbers = text.substring(text.length() - 7, text.length());
Run Code Online (Sandbox Code Playgroud)
但是如果输入字符串长度小于7,请务必捕获Exception.
如果你想得到最后的'N'个字符,你可以用任意数字N代替7.