我见过很多人都这样做,以获得字符串的最后一个字:
String test = "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);
我想做类似但是在最后一个int之后得到最后几个字,它不能被硬编码,因为数字可以是任何东西,并且最后一个int之后的单词数量也可以是无限的。我想知道是否有一种简单的方法可以做到这一点,因为我想避免再次使用Pattern和Matchers,因为在此方法中使用它们可以获得类似的效果。
提前致谢。
答案 0 :(得分:2)
我想在最后一个int之后得到最后几个字....因为数字可能是任何东西,最后一个int之后的单词数量也可能是无限的。
这是一个可能的建议。使用数组#split
String str = "This is 1 and 2 and 3 some more words .... foo bar baz";
String[] parts = str.split("\\d+(?!.*\\d)\\s+");
现在parts[1]
保留字符串中最后一个数字后面的所有单词。
some more words .... foo bar baz
答案 1 :(得分:0)
这个怎么样:
String test = "a string with a large number 1312398741 and some words";
String[] parts = test.split();
for (int i = 1; i < parts.length; i++)
{
try
{
Integer.parseInt(parts[i])
}
catch (Exception e)
{
// this part is not a number, so lets go on...
continue;
}
// when parsing succeeds, the number was reached and continue has
// not been called. Everything behind 'i' is what you are looking for
// DO YOUR STUFF with parts[i+1] to parts[parts.length] here
}