extraer una subcadena del final de una cadena hasta que se encuentre el primer espacio?

Tengo una cadena como esta:

"De Proost Wim"

Y necesito "De Proost" en una cadena y "Wim" en otra

entonces necesito el primer '' que comienza al final de una cadena.

0
Espero que no estés asumiendo que los nombres de las personas no contengan espacios. Eso sería un error.
agregado el autor Dawood ibn Kareem, fuente
Puede usar lastIndexOf ('') con el método substring .
agregado el autor Alexis C., fuente

3 Respuestas

Tal vez podrías intentar algo como:

public static String[] extract(final String string){
    assert string != null;
    final int i = string.lastIndexOf(' ');
    if(i == -1)
        return new String[]{string};
    final String first = string.substring(0, i);
    final String last = string.substring(i+1);
    return new String[]{first, last};
}

Uso:

final String[] parts = extract("De Proost Wim");

Valor en cada índice:

0: "De Proost"

1: "Wim"

0
agregado

Puede usar lastIndexOf ('') con substring método:

String s = "De Proost Wim";
int lastIndex = s.lastIndexOf(' ');
String s1 = s.substring(0, lastIndex);
String s2 = s.substring(lastIndex+1);

System.out.println(s1); //De Proost
System.out.println(s2); //Wim

Solo asegúrate de que lastIndexOf no devuelva -1.

0
agregado
String str = /*Your-String*/;
String[] subs = str.split(" ");
String strLast = "";
if( subs.length > 1 )
    strLast = subs[subs.length-1];
0
agregado
No obtendrá "De Proost" en la primera cadena con eso. Tendrás que reconcatarlos.
agregado el autor Alexis C., fuente
Sí, pero esto es muy exagerado para una tarea tan simple. Dos líneas son suficientes usando y lastIndexOf .
agregado el autor Alexis C., fuente
@ZouZou Puede agregar un búfer de cadena con el resto de los elementos en la matriz.
agregado el autor Abhishek Shukla, fuente
De acuerdo ... str.lastIndexOf (""); es mejor.
agregado el autor Abhishek Shukla, fuente