在大字符串中的最后一个整数之后分隔单词

时间:2013-10-07 00:15:40

标签: android regex string substring lastindexof

我见过很多人都这样做,以获得字符串的最后一个字:

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

我想做类似但是在最后一个int之后得到最后几个字,它不能被硬编码,因为数字可以是任何东西,并且最后一个int之后的单词数量也可以是无限的。我想知道是否有一种简单的方法可以做到这一点,因为我想避免再次使用Pattern和Matchers,因为在此方法中使用它们可以获得类似的效果。

提前致谢。

2 个答案:

答案 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

}