@BasilBourque - Ich konnte auf diesem Link keinen Run-Button finden
nanosoft
1
@nanosoft Die Seite bei IdeOne.com wird beim Laden automatisch ausgeführt. Siehe Ausgabe unter dem Code im Abschnitt stdout . Um den Code zu ändern, klicken Sie auf den forkLink in der oberen linken Ecke.
Was du hast, sollte funktionieren. Wenn die bereitgestellten Leerzeichen jedoch standardmäßig ... etwas anderes sind? Sie können den Leerzeichen-Regex verwenden:
str ="Hello I'm your String";String[] splited = str.split("\\s+");
Dies führt dazu, dass eine beliebige Anzahl aufeinanderfolgender Leerzeichen Ihre Zeichenfolge in Token aufteilt.
Nebenbei bemerkt, ich bin mir nicht sicher, ob "gespalten" ein Wort ist :) Ich glaube, der Zustand, Opfer einer Spaltung zu sein, ist auch "gespalten". Es ist eines dieser kniffligen Grammatik-Dinge :-) Ich versuche nicht, wählerisch zu sein, ich dachte nur, ich würde es weitergeben!
Ich bin Schweizer, was hast du erwartet, mein Englisch ist nicht das beste; P, trotzdem hat es funktioniert!
Safari
29
:-) Hey, es ist nicht groß. Ich habe einige lächerliche Variablennamen verwendet (im Code hätte ich wahrscheinlich nicht loslassen sollen!). Ich habe nicht versucht, ein Grammatik-Nazi zu sein oder so, nur ein paar Kleinigkeiten weiterzugeben, das ist alles.
CorsiKa
7
@ Safari, du hast gerade 2 tolle Ratschläge zum Preis von 1 bekommen. Nur ein Scherz. Gute Antwort.
Nirmal Mangal
8
"Was Sie haben, sollte funktionieren" Ich sage ziemlich häufig etwas Ähnliches, wenn mein Code kaputt geht.
Griffin
1
Ich finde es nützlich, da mein Anwendungsfall darin bestand, die Zeichenfolge zu teilen und mehrere Leerzeichen zu entfernen. Eine Codezeile erledigt beides für mich.
Niharika Upadhyay
85
Beachten Sie, dass die akzeptierte Antwort zwar gut ist, Sie jedoch eine führende leere Zeichenfolge erhalten, wenn Ihre Eingabezeichenfolge mit einem Leerzeichen beginnt. Zum Beispiel mit:
String str =" Hello I'm your String";String[] splitStr = str.split("\\s+");
Ich glaube, dass ein regulärer Ausdruck in den Klammern von str.split das Problem lösen sollte. Die Java String.split () -Methode basiert auf regulären Ausdrücken. Sie benötigen also Folgendes:
str ="Hello I'm your String";String[] splitStr = str.split("\\s+");
Verwenden Sie Stringutils.split()diese Option , um die Zeichenfolge durch weiße Schritte zu teilen. Gibt zum Beispiel StringUtils.split("Hello World")"Hallo" und "Welt" zurück;
Um den genannten Fall zu lösen, verwenden wir eine solche Split-Methode
String split[]=StringUtils.split("Hello I'm your String");
Wenn wir das geteilte Array drucken, lautet die Ausgabe wie folgt:
Es besteht die Möglichkeit, eine ArrayIndexOutofBounds-Ausnahme auszulösen.
Ajay Takur
2
Nein, dies wird nicht "ArrayIndexOutofBounds" auslösen, da ich die Array-Größe entsprechend der Anzahl der in String gefundenen Token deklariert habe. Dadurch wird sichergestellt, dass die Array-Größe nicht größer als die empfangenen Token in einer Zeichenfolge ist.
import java.util.regex.Pattern;...privatestaticfinalPattern SPACE =Pattern.compile(" ");String[] arr = SPACE.split(str);// str is the string to be split
Das replaceAll("^\\s+","")hat mir den Tag gerettet. Das hat bei meinem Fall funktioniert. Vielen Dank
Kostas Asargiotakis
2
Sehr einfaches Beispiel unten:
Ich hoffe es hilft.
String str ="Hello I'm your String";String[] splited = str.split(" ");
var splited = str.split(" ");
var splited1=splited[0];//Hello
var splited2=splited[1];//I'm
var splited3=splited[2];//your
var splited4=splited[3];//String
Jetzt haben Sie eine Liste von Zeichenfolgen (die wohl besser ist als ein Array); Wenn Sie ein Array benötigen, können Sie dies tunoutput.toArray(new String[0]);
fork
Link in der oberen linken Ecke.Antworten:
Was du hast, sollte funktionieren. Wenn die bereitgestellten Leerzeichen jedoch standardmäßig ... etwas anderes sind? Sie können den Leerzeichen-Regex verwenden:
Dies führt dazu, dass eine beliebige Anzahl aufeinanderfolgender Leerzeichen Ihre Zeichenfolge in Token aufteilt.
Nebenbei bemerkt, ich bin mir nicht sicher, ob "gespalten" ein Wort ist :) Ich glaube, der Zustand, Opfer einer Spaltung zu sein, ist auch "gespalten". Es ist eines dieser kniffligen Grammatik-Dinge :-) Ich versuche nicht, wählerisch zu sein, ich dachte nur, ich würde es weitergeben!
quelle
Beachten Sie, dass die akzeptierte Antwort zwar gut ist, Sie jedoch eine führende leere Zeichenfolge erhalten, wenn Ihre Eingabezeichenfolge mit einem Leerzeichen beginnt. Zum Beispiel mit:
Das Ergebnis wird sein:
Vielleicht möchten Sie Ihre Saite kürzen, bevor Sie sie teilen:
quelle
Ich glaube, dass ein regulärer Ausdruck in den Klammern von str.split das Problem lösen sollte. Die Java String.split () -Methode basiert auf regulären Ausdrücken. Sie benötigen also Folgendes:
quelle
Verwenden Sie
Stringutils.split()
diese Option , um die Zeichenfolge durch weiße Schritte zu teilen. Gibt zum BeispielStringUtils.split("Hello World")
"Hallo" und "Welt" zurück;Um den genannten Fall zu lösen, verwenden wir eine solche Split-Methode
Wenn wir das geteilte Array drucken, lautet die Ausgabe wie folgt:
Hallo
Ich bin
Ihre
String
Eine vollständige Demo finden Sie hier
quelle
Versuchen
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
quelle
Wenn Sie die String-Split-Methode nicht verwenden möchten, können Sie die StringTokenizer-Klasse in Java als verwenden.
quelle
Probier diese
quelle
Ein alternativer Weg wäre:
Hab es hier gesehen
quelle
OK, also müssen wir uns aufteilen, da Sie bereits die Antwort erhalten haben, die ich verallgemeinern würde.
Wenn Sie eine Zeichenfolge durch Leerzeichen teilen möchten, trennen Sie das Zeichen (Sonderzeichen).
Entfernen Sie zunächst den führenden Bereich, da die meisten Probleme auftreten.
Entfernen Sie zuerst das führende Leerzeichen, das Leerzeichen, Tabulator usw. sein kann.
Nun, wenn Sie nach Leerzeichen oder Sonderzeichen aufteilen möchten.
Da w jedoch [a-zA-Z_0-9] enthält, verwenden Sie auch, wenn Sie durch Unterstrich (_) teilen möchten
quelle
replaceAll("^\\s+","")
hat mir den Tag gerettet. Das hat bei meinem Fall funktioniert. Vielen DankSehr einfaches Beispiel unten:
Ich hoffe es hilft.
quelle
Sie können die Zeichenfolge mit dem folgenden Code saperieren
quelle
Hier ist eine Methode zum Trimmen eines Strings mit einem "," oder Leerzeichen
quelle
Da es eine Weile her ist, dass diese Antworten veröffentlicht wurden, ist hier eine andere aktuellere Methode, um das zu tun, was gefragt wird:
Jetzt haben Sie eine Liste von Zeichenfolgen (die wohl besser ist als ein Array); Wenn Sie ein Array benötigen, können Sie dies tun
output.toArray(new String[0]);
quelle
Nicht nur Leerzeichen, sondern meine Lösung löst auch die unsichtbaren Zeichen.
quelle
Einfach, String durch Leerzeichen zu spucken
quelle