Java: самый простой способ получить последнее слово в строке - PullRequest
42 голосов
/ 12 января 2011

Какой самый простой способ получить последнее слово строки в Java? Вы не можете использовать пунктуацию (только буквы и пробелы).

Ответы [ 5 ]

145 голосов
/ 12 января 2011
String test =  "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);
20 голосов
/ 12 января 2011
String testString = "This is a sentence";
String[] parts = testString.split(" ");
String lastWord = parts[parts.length - 1];
System.out.println(lastWord); // "sentence"
11 голосов
/ 13 января 2016

Вот способ сделать это, используя String встроенные возможности регулярных выражений:

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

Идея состоит в том, чтобы сопоставить всю строку от ^ до $, захватитьпоследняя последовательность \w+ в группе захвата 1 и замените все предложение им, используя $1.

Demo.

11 голосов
/ 12 января 2011

Если возможны другие пробельные символы, вам нужно:

testString.split("\\s+");
5 голосов
/ 26 июня 2014

Вы можете сделать это с помощью 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...