Подтвердить что ты не робот

Java: простейший способ получить последнее слово в строке

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

4b9b3361

Ответ 1

String test =  "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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

Демоверсия

Ответ 5

Вы можете сделать это с помощью 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);
}

Ответ 6

Получить последнее слово в Kotlin:

String.substringAfterLast(" ")