Dividir una cadena con múltiples espacios

Quiero dividir una cadena como

"first middle last" 

con String.split() . Pero cuando trato de dividirlo consigo

 String[] array = {"first","","","","middle","","last"} 

Intenté usar String.isEmpty() para buscar cadenas vacías después de dividirlas, pero no funciona en Android. Aquí está mi código:

 String s = "First Middle Last"; String[] array = s.split(" "); for(int i=0; i<array.length; i++) { //displays segmented strings here } 

Creo que hay una manera de dividirlo así: {"first","middle","last"} pero no puedo entender cómo.

¡Gracias por la ayuda!

Como el argumento de split() es una expresión regular , puede buscar uno o más espacios ( " +" ) en lugar de solo un espacio ( " " ).

 String[] array = s.split(" +"); 

intente usar esta s.split("\\s+");

si tienes una cadena como

 String s = "This is a test string This is the next part This is the third part"; 

y quiere obtener una matriz como

 String[] sArray = { "This is a test string", "This is the next part", "This is the third part" } 

Deberías intentarlo

 String[] sArray = s.split("\\s{2,}"); 

La parte {2,} define que se necesitan al menos 2 y hasta casi infinitos espacios en blanco para que ocurra la división.

Esto funcionó para mí.

 s.split(/\s+/) 
 var foo = "first middle last"; console.log(foo.split(/\s+/)); 

Dado que split() usa expresiones regulares , puede hacer algo como s.split("\\s+") para establecer el delimitador dividido para que sea cualquier número de caracteres de espacios en blanco.

¿Qué le parece usar algo que SDK de Android proporciona de manera predeterminada?

 TextUtils.split(stringToSplit, " +");