在Java中获取字符串的最后一个单词的最简单方法是什么?你可以假设没有标点符号(只是字母字符和空格)。
答案 0 :(得分:142)
String test = "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);
答案 1 :(得分:20)
String testString = "This is a sentence";
String[] parts = testString.split(" ");
String lastWord = parts[parts.length - 1];
System.out.println(lastWord); // "sentence"
答案 2 :(得分:11)
如果可能有其他空格字符,那么您需要:
testString.split("\\s+");
答案 3 :(得分:11)
以下是使用String
内置正则表达式功能的方法:
String lastWord = sentence.replaceAll("^.*?(\\w+)\\W*$", "$1");
我们的想法是匹配从^
到$
的整个字符串,捕获捕获组1中\w+
的最后一个序列,并使用{{替换整个句子} 1}}。
答案 4 :(得分: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);
}
答案 5 :(得分:2)
在Kotlin中获得最后一句话:
String.substringAfterLast(" ")