Devo dividere la mia stringa per spazi. Per questo ho provato:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Ma non sembra funzionare.
fork
collegamento nell'angolo in alto a sinistra.
Devo dividere la mia stringa per spazi. Per questo ho provato:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Ma non sembra funzionare.
fork
collegamento nell'angolo in alto a sinistra.
Risposte:
Quello che hai dovrebbe funzionare. Se, tuttavia, gli spazi forniti sono predefiniti a ... qualcos'altro? Puoi usare la regex degli spazi bianchi:
str = "Hello I'm your String";
String[] splited = str.split("\\s+");
Ciò farà sì che un numero qualsiasi di spazi consecutivi divida la stringa in token.
Come nota a margine, non sono sicuro che "diviso" sia una parola :) Credo che anche lo stato di essere vittima di una scissione sia "diviso". È una di quelle cose grammaticali difficili :-) Non cercare di essere schizzinoso, ho solo pensato di passarlo!
Mentre la risposta accettata è buona, tieni presente che finirai con una stringa vuota iniziale se la stringa di input inizia con uno spazio bianco. Ad esempio, con:
String str = " Hello I'm your String";
String[] splitStr = str.split("\\s+");
Il risultato sarà:
splitStr[0] == "";
splitStr[1] == "Hello";
splitStr[2] == "I'm";
splitStr[3] == "Your";
splitStr[4] == "String";
Quindi potresti voler tagliare la corda prima di dividerla:
String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
Utilizzare Stringutils.split()
per dividere la stringa per i bianchi. Ad esempio, StringUtils.split("Hello World")
restituisce "Hello" e "World";
Per risolvere il caso menzionato utilizziamo il metodo split come questo
String split[]= StringUtils.split("Hello I'm your String");
quando stampiamo l'array split l'output sarà:
Ciao
io sono
il tuo
Corda
Provare
String[] splited = str.split("\\s");
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
se in qualche modo non vuoi usare il metodo String split, puoi usare la classe StringTokenizer in Java come ..
StringTokenizer tokens = new StringTokenizer("Hello I'm your String", " ");
String[] splited = new String[tokens.countTokens()];
int index = 0;
while(tokens.hasMoreTokens()){
splited[index] = tokens.nextToken();
++index;
}
Prova questo
String str = "This is String";
String[] splited = str.split("\\s+");
String split_one=splited[0];
String split_second=splited[1];
String split_three=splited[2];
Log.d("Splited String ", "Splited String" + split_one+split_second+split_three);
OK, quindi dobbiamo fare una scissione poiché hai già ottenuto la risposta, la generalizzerei.
Se vuoi dividere qualsiasi stringa per spazi, delimitatore (caratteri speciali).
Innanzitutto, rimuovi lo spazio iniziale mentre creano la maggior parte dei problemi.
str1 = " Hello I'm your String ";
str2 = " Are you serious about this question_ boy, aren't you? ";
Rimuovere innanzitutto lo spazio iniziale che può essere spazio, tab ecc.
String s = str1.replaceAll("^\\s+","");//starting with whitespace one or more
Ora se vuoi dividere per spazio o qualsiasi carattere speciale.
String[] sa = s.split("[^\\w]+");//split by any non word char
Ma poiché w contiene [a-zA-Z_0-9], quindi se vuoi dividere per trattino basso (_) usa anche
String[] sa = s.split("[!,? ._'@]+");//for str2 after removing leading space
replaceAll("^\\s+","")
salvato la giornata. Ha funzionato per il mio caso. Grazie
Esempio molto semplice di seguito:
Spero che sia d'aiuto.
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
puoi separare la stringa usando il codice qui sotto
String thisString="Hello world";
String[] parts = theString.split(" ");
String first = parts[0];//"hello"
String second = parts[1];//"World"
Dal momento che è passato un po 'di tempo da quando sono state pubblicate queste risposte, ecco un altro modo più attuale per fare ciò che viene chiesto:
List<String> output = new ArrayList<>();
try (Scanner sc = new Scanner(inputString)) {
while (sc.hasNext()) output.add(sc.next());
}
Ora hai un elenco di stringhe (che è probabilmente migliore di un array); se hai bisogno di un array, puoi farlooutput.toArray(new String[0]);
Corda semplice da sputare di Space
String CurrentString = "First Second Last";
String[] separated = CurrentString.split(" ");
for (int i = 0; i < separated.length; i++) {
if (i == 0) {
Log.d("FName ** ", "" + separated[0].trim() + "\n ");
} else if (i == 1) {
Log.d("MName ** ", "" + separated[1].trim() + "\n ");
} else if (i == 2) {
Log.d("LName ** ", "" + separated[2].trim());
}
}