Aufteilen einer Zeichenfolge mit mehreren Leerzeichen

Lesezeit: 2 Minuten

Benutzer-Avatar
smarti02

Ich möchte eine Zeichenfolge teilen wie

"first     middle  last" 

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

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

Ich habe versucht, mit String.isEmpty() um nach leeren Zeichenfolgen zu suchen, nachdem ich sie geteilt habe, aber ich 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 wie folgt aufzuteilen: {"first","middle","last"} kann aber nicht herausfinden wie.

Danke für die Hilfe!

  • IHRSTRING.split(/\s+/ig)

    – ehsan

    3. Dezember 2020 um 6:11 Uhr


Benutzer-Avatar
loswerden

Da das Argument zu split() ist ein regulären Ausdruckkönnen Sie nach einem oder mehreren Leerzeichen suchen (" +") statt nur einem Leerzeichen (" ").

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

  • hmm, ich habe nie daran gedacht, nur “+” zu verwenden, ich bin immer konventioneller mit “\\s+”. Gute Idee!

    – Kevin

    9. April 2012 um 20:36 Uhr

  • @ Kevin, naja, \s umfasst mehr als nur Leerzeichen.

    – loswerden

    9. April 2012 um 20:37 Uhr

  • Ich schlage auch vor, trim() vor split() hinzuzufügen: s.trim().split(" +") Fälle wie behandeln " first middle last "

    – Gamliela

    26. Dezember 2012 um 12:42 Uhr


  • Ich habe das in Chrome versucht und es hat bei mir nicht funktioniert. Die Anpassung auf Folgendes hat es funktioniert: String[] array = s.split(/\ +/);

    – André M

    26. November 2015 um 23:59 Uhr


  • @AndreM Das ist Java, kein JavaScript.

    – Schmosel

    27. November 2017 um 19:05 Uhr

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

wenn Sie eine Zeichenfolge wie haben

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

und wollen 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,}");

Das {2,} part definiert, dass mindestens 2 und bis zu fast unendlich viele Leerzeichen benötigt werden, damit die Teilung auftritt.

Das hat bei mir funktioniert.

s.split(/\s+/)

var foo = "first     middle  last";

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

Seit split() Verwendet Reguläre AusdrückeSie können so etwas tun s.split("\\s+") um das geteilte Trennzeichen auf eine beliebige Anzahl von Leerzeichen festzulegen.

Benutzer-Avatar
JaydeepW

Wie wäre es mit etwas, das von Android SDK standardmäßig bereitgestellt wird?

TextUtils.split(stringToSplit, " +");

1093020cookie-checkAufteilen einer Zeichenfolge mit mehreren Leerzeichen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy