web-dev-qa-db-de.com

Eine Zeichenfolge mit mehreren Leerzeichen aufteilen

Ich möchte gerne einen String teilen 

"first     middle  last" 

mit String.split(). Aber wenn ich versuche, es zu teilen, bekomme ich es 

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

Ich habe versucht, mit String.isEmpty() nach leeren Zeichenfolgen zu suchen, nachdem ich sie geteilt habe, aber es funktioniert nicht in Android. Hier ist mein Code:

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

Ich denke, es gibt eine Möglichkeit, es so aufzuteilen: {"first","middle","last"} kann aber nicht herausfinden, wie.

Danke für die Hilfe!

47
smarti02

Da das Argument für split() ein regulärer Ausdruck ist, können Sie nach einem oder mehreren Leerzeichen (" +") statt nur einem Leerzeichen (" ") suchen.

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

versuchen Sie es mit dieser s.split("\\s+");

25
Anurag Ramdasan

wenn du einen String hast 

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

und möchten ein Array wie bekommen 

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

du solltest es versuchen 

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

Der {2,}-Teil definiert, dass mindestens 2 und bis fast unendlich viele Whitespace-Zeichen erforderlich sind, damit die Aufteilung erfolgen kann.

8
Roman Vottner

Das hat bei mir funktioniert.

s.split(/\s+/)

var foo = "first     middle  last";

console.log(foo.split(/\s+/));

4
user5613691

Da split()reguläre Ausdrücke verwendet, können Sie etwas wie s.split("\\s+") verwenden, um das Trennzeichen auf eine beliebige Anzahl von Leerzeichen festzulegen.

2

Verwenden Sie etwas, das von Android SDK standardmäßig bereitgestellt wird.

TextUtils.split(stringToSplit, " +");
1
JaydeepW