Eliminar la última palabra de un String en Java

Método Java para quitar la última palabra de un String.

Vamos a escribir un método que reciba un String que contiene una frase. El método eliminará la última palabra y devuelve un String con la frase modificada.
La forma de resolverlo es la siguiente: se busca el último espacio en blanco del texto mediante el método lastIndexOf. Este método devuelve la posición del último espacio en blanco. Si lastIndexOf devuelve -1 significa que no lo ha encontrado lo que quiere decir que la frase solo tiene una palabra o está vacía. En ese caso se devuelve una cadena vacía.
Si se encuentra el último espacio en blanco, se obtiene un nuevo String mediante el método substring desde la primera posición del texto hasta donde se encuentra el último espacio.
Para que esto funcione correctamente debemos asegurarnos de que el texto no contiene espacios en blanco al final ya que si fuese así no encontraríamos la última palabra con este método. Para eso se utiliza el método trim() que elimina posibles espacios en blanco al principio y al final del String.

public static String eliminarUltimaPalabra(String s) {
    int pos;
    s = s.trim();
    pos = s.lastIndexOf(" ");
    if (pos != -1) {
         s = s.substring(0, pos);
    } else {
         s = "";
    }
    return s;
}

Un método main para probarlo podría ser este:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String texto;
    do {
           System.out.println("Introduce texto: ");
           texto = sc.nextLine();
     } while (texto.isEmpty());
     texto = eliminarUltimaPalabra(texto);
     System.out.println(texto);
}

Se pide por teclado un texto, mediante el método isEmpty() se obliga a que el texto no esté vacío aunque esto no es necesario. Después se envía el String que contiene el texto al método para que elimine la última palabra y finalmete se muestra el String modificado.