Non so se devi prendere in considerazione anche la possibilità di avere nomi doppi o cognomi doppi (tipo "Gian Marco Caputo" o "Leonardo Del Vecchio") e/o se il nome precede sempre il cognome.
Ad ogni modo, supponendo di non avere questo tipo di problemi, hai due modi:
1) Ricavare la posizione dello spazio e prendere la sottostringa da quella posizione (più uno) alla fine
2) Splittare la stringa usando lo spazio come carattere di separazione e prendere la seconda posizione dell'array
Metodo uno:
codice:
String str = "Mario Rossi";
int posSpazio = str.indexOf(' ');
String cognome = str.substring(posSpazio + 1);
Metodo due:
codice:
String str = "Mario Rossi";
String[] dati = str.split(" ");
String cognome = dati[1];
Esiste anche il metodo lastIndexOf che ritorna la posizione dell'ultima occorrenza del carattere/stringa all'interno della stringa su cui viene invocato.
Ciao.