猿问

如何找到字符串中的最后一个单词

我正在尝试创建一个返回字符串中最后一个单词的方法,但我在编写它时遇到了一些麻烦。


我试图通过查找字符串中的最后一个空格并使用子字符串来查找单词来做到这一点。这是我到目前为止所拥有的:


    String strSpace=" ";

    int Temp; //the index of the last space

    for(int i=str.length()-1; i>0; i--){

        if(strSpace.indexOf(str.charAt(i))>=0){

            //some code in between that I not sure how to write

        }

    }

}

我刚开始使用 Java,所以我不知道该语言的许多复杂部分。如果有人可以帮助我找到解决此问题的简单方法,将不胜感激。谢谢!


达令说
浏览 151回答 3
3回答

小唯快跑啊

你可以这样做:String[] words = originalStr.split(" ");  // uses an arrayString lastWord = words[words.length - 1];你有你的最后一句话。您在每个空格处拆分原始字符串,并使用该方法将子字符串存储在数组中String#split。获得数组后,您将通过获取最后一个数组索引处的值来检索最后一个元素(通过获取数组长度并减去 1,因为数组索引从 0 开始)。

蓝山帝景

String str =  "Code Wines";String lastWord = str.substring(str.lastIndexOf(" ")+1);System.out.print(lastWord);输出:Wines

慕沐林林

String#lastIndexOf并且String#substring是你这里的朋友。charJava 中的 s 可以直接转换为ints,我们将使用它来查找最后一个空格。然后我们将简单地从那里子串。String phrase = "The last word of this sentence is stackoverflow";System.out.println(phrase.substring(phrase.lastIndexOf(' ')));这也会打印空格字符本身。为了摆脱这种情况,我们只需将子字符串所在的索引加一。String phrase = "The last word of this sentence is stackoverflow";System.out.println(phrase.substring(1 + phrase.lastIndexOf(' ')));如果您不想使用String#lastIndexOf,则可以遍历字符串并在每个空格处对其进行子字符串处理,直到您没有任何剩余为止。String phrase = "The last word of this sentence is stackoverflow";String subPhrase = phrase;while(true) {    String temp = subPhrase.substring(1 + subPhrase.indexOf(" "));    if(temp.equals(subPhrase)) {        break;    } else {        subPhrase = temp;    }}System.out.println(subPhrase);
随时随地看视频慕课网APP

相关分类

Java
我要回答