Java:获取字符串中最后一个单词的最简单方法

在Java中获取字符串的最后一个单词的最简单方法是什么? 您可以假设没有标点符号(仅字母字符和空格)。

Muhd asked 2020-06-27T17:50:27Z
6个解决方案
146 votes
String test =  "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);
OscarRyz answered 2020-06-27T17:50:39Z
20 votes
String testString = "This is a sentence";
String[] parts = testString.split(" ");
String lastWord = parts[parts.length - 1];
System.out.println(lastWord); // "sentence"
Dave McClelland answered 2020-06-27T17:50:54Z
11 votes

如果其他空格字符也是可能的,那么您需要:

testString.split("\\s+");
JST answered 2020-06-27T17:51:14Z
11 votes

这是使用String的内置正则表达式功能来实现的方法:

String lastWord = sentence.replaceAll("^.*?(\\w+)\\W*$", "$1");

这个想法是将整个字符串从^匹配到$,在捕获组1中捕获\w+的最后一个序列,并使用$1替换整个句子。

演示

dasblinkenlight answered 2020-06-27T17:51:43Z
5 votes

您可以使用if(来自Apache Commons Lang)做到这一点。 它避免了索引魔术,因此更易于理解。 不幸的是,当输入字符串中没有分隔符时,if返回空字符串,因此在这种情况下我们需要if语句。

public static String getLastWord(String input) {
    String wordSeparator = " ";
    boolean inputIsOnlyOneWord = !StringUtils.contains(input, wordSeparator);
    if (inputIsOnlyOneWord) {
        return input;
    }
    return StringUtils.substringAfterLast(input, wordSeparator);
}
palacsint answered 2020-06-27T17:52:03Z
2 votes

得到科特林的最后一句话:

String.substringAfterLast(" ")
li2 answered 2020-06-27T17:52:23Z
translate from https://stackoverflow.com:/questions/4672806/java-simplest-way-to-get-last-word-in-a-string