Java:获取字符串中最后一个单词的最简单方法
在Java中,获取字符串最后一个单词的最简单方法是什么?您可以假定没有标点符号(只有字母字符和空格)。如果可以使用其他空格字符,则您需要:Java:获取字符串中最后一个单词的最简单方法,java,string,Java,String,在Java中,获取字符串最后一个单词的最简单方法是什么?您可以假定没有标点符号(只有字母字符和空格)。如果可以使用其他空格字符,则您需要: testString.split("\\s+"); 你可以用(从)来做那件事。它避免了索引魔法,因此更容易理解。不幸的是,当输入字符串中没有分隔符时,返回空字符串,因此我们需要if语句 public static String getLastWord(String input) { String wordSeparator = " "; b
testString.split("\\s+");
你可以用(从)来做那件事。它避免了索引魔法,因此更容易理解。不幸的是,当输入字符串中没有分隔符时,返回空字符串,因此我们需要if
语句
public static String getLastWord(String input) {
String wordSeparator = " ";
boolean inputIsOnlyOneWord = !StringUtils.contains(input, wordSeparator);
if (inputIsOnlyOneWord) {
return input;
}
return StringUtils.substringAfterLast(input, wordSeparator);
}
下面是一种使用
String
的内置正则表达式功能实现的方法:
String lastWord = sentence.replaceAll("^.*?(\\w+)\\W*$", "$1");
其思想是将整个字符串从^
匹配到$
,在捕获组1中捕获\w+
的最后一个序列,并使用$1
替换整个句子
在Kotlin中说出最后一句话:
String.substringAfterLast(" ")
相关:标题写“最快”,问题要求“最简单”。请澄清。编码和阅读最快最简单。执行时间无关紧要。顺便说一句,对于搜索目的来说,使用不同的措辞更好,尽管这种差异是无意的。这是我自己可能会想到的解决方案,不错,但一行代码会更好。当你说“最快”时,你是指代码最短还是执行最快?这可以做成一行,但它不会执行得更快,也会更难阅读。我没有说“最快”,我说的是“最简单”,我的意思是简洁和易于理解的结合。@Muhd如果是我,我认为上面的内容最容易阅读。再说一次,这也是我马上想到的解决方案@OscarRyz的解决方案也很容易阅读,因此归结为个人偏好。@Dave可能是我的,不再容易阅读了,因为我添加了一个复选框,以防字符串本身是最后一个单词。在那里需要+1,并且在单个单词上失败。一行很好,因为我将在Velocity模板代码中使用它。可以与常规Expression结合使用,以解释其他字符,如JST的解决方案。实际上这更好,它已经解释了一个单词:String lastWord=test.substring(test.lastIndexOf(“”+1);如果一个句子的结尾有标点符号怎么办?“这是一句话?!”这句是纯金的,因为它是一行
String lastWord = sentence.replaceAll("^.*?(\\w+)\\W*$", "$1");
String.substringAfterLast(" ")