Java:获取string中最后一个单词的最简单的方法

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

String test = "This is a sentence"; String lastWord = test.substring(test.lastIndexOf(" ")+1); 
 String testString = "This is a sentence"; String[] parts = testString.split(" "); String lastWord = parts[parts.length - 1]; System.out.println(lastWord); // "sentence" 

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

 testString.split("\\s+"); 

下面是使用String的内置正则expression式来实现的方法:

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

这个想法是匹配从^$的整个string,在捕获组1中捕获\w+的最后一个序列,并用$1replace整个句子。

演示。

你可以用StringUtils ( Apache Commons Lang )来做到这一点。 它避免了索引魔术,所以更容易理解。 不幸的是, substringAfterLast在inputstring中没有分隔符时返回空string,所以我们需要if语句。

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