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

Muh*_*uhd 46 java string

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

Osc*_*Ryz 147

String test =  "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);
Run Code Online (Sandbox Code Playgroud)

  • 在那里需要+1并且在单个单词上失败. (8认同)
  • 实际上这更好,它已经只占一个字:String lastWord = test.substring(test.lastIndexOf("")+1); (2认同)

Dav*_*and 20

String testString = "This is a sentence";
String[] parts = testString.split(" ");
String lastWord = parts[parts.length - 1];
System.out.println(lastWord); // "sentence"
Run Code Online (Sandbox Code Playgroud)

  • @Muhd如果是我,我认为以上内容最容易阅读.然后,这也是我立即提出的解决方案.@ OscarRyz的解决方案也很容易阅读,因此归结为个人喜好. (2认同)

小智 11

如果其他空白字符是可能的,那么你需要:

testString.split("\\s+");
Run Code Online (Sandbox Code Playgroud)


das*_*ght 11

以下是使用String内置正则表达式功能的方法:

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

我们的想法是整个字符串从匹配^$,拍摄的最后一个序列\w+中捕获组1,并用它代替使用整个句子$1.

演示.


pal*_*int 5

您可以使用StringUtils(来自Apache Commons Lang).它避免了索引魔法,所以它更容易理解.不幸的是,substringAfterLast当输入字符串中没有分隔符时返回空字符串,因此我们需要该if情况的语句.

public static String getLastWord(String input) {
    String wordSeparator = " ";
    boolean inputIsOnlyOneWord = !StringUtils.contains(input, wordSeparator);
    if (inputIsOnlyOneWord) {
        return input;
    }
    return StringUtils.substringAfterLast(input, wordSeparator);
}
Run Code Online (Sandbox Code Playgroud)