Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:获取字符串中最后一个单词的最简单方法_Java_String - Fatal编程技术网

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

Java:获取字符串中最后一个单词的最简单方法,java,string,Java,String,在Java中,获取字符串最后一个单词的最简单方法是什么?您可以假定没有标点符号(只有字母字符和空格)。如果可以使用其他空格字符,则您需要: testString.split("\\s+"); 你可以用(从)来做那件事。它避免了索引魔法,因此更容易理解。不幸的是,当输入字符串中没有分隔符时,返回空字符串,因此我们需要if语句 public static String getLastWord(String input) { String wordSeparator = " "; b

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

如果可以使用其他空格字符,则您需要:

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(" ")