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+
的最后一个序列,并用$1
replace整个句子。
演示。
你可以用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); }