0

我见过很多人为了得到一个字符串的最后一个字而做类似的事情:

 String test =  "This is a sentence";
 String lastWord = test.substring(test.lastIndexOf(" ")+1);

我想做类似的事情,但在最后一个 int 之后获取最后几个单词,它不能被硬编码,因为数字可以是任何东西,最后一个 int 之后的单词数量也可以是无限的。我想知道是否有一种简单的方法可以做到这一点,因为我想避免再次使用模式和匹配器,因为在此方法中早些时候使用它们来获得类似的效果。

提前致谢。

4

2 回答 2

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
于 2013-10-07T02:41:12.523 回答
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

}
于 2013-10-07T00:33:59.280 回答