Am nevoie să-mi împart Șir de spații. Pentru acest lucru am încercat:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Dar nu't par să funcționeze.
Ceea ce ai ar trebui să funcționeze. Dacă, cu toate acestea, spațiile sunt în culpă pentru... altceva? Puteți utiliza spațiu regex:
str = "Hello I'm your String";
String[] splited = str.split("\\s+");
Acest lucru va provoca orice număr de spații consecutive pentru a împărți șirul în jetoane.
Ca o paranteză, am'm nu sunt sigur "impartita" este un cuvant :) cred că starea de a fi victima unui split este, de asemenea, "split". L's unul dintre cei dificile de gramatică lucruri :-) Nu încerc să fiu pretentios, doar că am'd-l treacă pe!
În timp ce a acceptat răspunsul este bun, să fie conștienți de faptul că va termina cu un lider șir gol dacă șirul de intrare începe cu un spațiu alb. De exemplu, cu:
String str = " Hello I'm your String";
String[] splitStr = str.split("\\s+");
Rezultatul va fi:
splitStr[0] == "";
splitStr[1] == "Hello";
splitStr[2] == "I'm";
splitStr[3] == "Your";
splitStr[4] == "String";
Așa că poate doriți să tăiați șir înainte de divizare:
String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
Eu cred că a pune o expresie regulată în str.split paranteze ar trebui să rezolve problema. Java String.split() metoda se bazează pe expresii regulate ce ai nevoie este:
str = "Hello I'm your String";
String[] splitStr = str.split("\\s+");
Folosesc Stringutils.split()a împărți șirul de albușuri de pași. De exemplu
StringUtils.split("Hello World")` întoarce "Buna ziua" și "Lume";
În scopul de a rezolva menționat caz vom folosi metoda split astfel de prognoze
String split[]= StringUtils.split("Hello I'm your String");
când am print split matrice de ieșire va fi :
Salut
Am'm
dvs.
String
Încercați
String[] splited = str.split("\\s");
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
Încercați această unul
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);
daca cumva nu't să folosiți Șir de split metodă, atunci puteți folosi clasa StringTokenizer în Java..
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;
}
O metodă alternativă ar fi:
import java.util.regex.Pattern;
...
private static final Pattern SPACE = Pattern.compile(" ");
String[] arr = SPACE.split(str); // str is the string to be split
Văzut aici
Foarte Simplu Exemplul de mai jos:
Sper că vă ajută.
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
OK, deci avem de-a face divizarea ca ai primit deja raspunsul mi-ar generaliza.
Dacă doriți să împartă orice șir de spații, delimitator(caractere speciale).
În primul rând, scoateți lider spațiu ca vor crea cele mai multe probleme.
str1 = " Hello I'm your String ";
str2 = " Are you serious about this question_ boy, aren't you? ";
Scoateți mai întâi de conducere spațiu care poate fi spațiu, tab etc.
String s = str1.replaceAll("^\\s+","");//starting with whitespace one or more
Acum, dacă doriți să împartă prin spațiu sau orice char special.
String[] sa = s.split("[^\\w]+");//split by any non word char
Dar ca w conține [a-zA-Z0-9] ,deci, dacă doriți să împartă de subliniere (), de asemenea, utiliza
String[] sa = s.split("[!,? ._'@]+");//for str2 after removing leading space
Deoarece's fost un timp când aceste răspunsuri au fost postate, aici's încă mai curent mod de a face ce's-a întrebat:
List<String> output = new ArrayList<>();
try (Scanner sc = new Scanner(inputString)) {
while (sc.hasNext()) output.add(sc.next());
}
Acum aveți o listă de siruri de caractere (care este, fără îndoială, mai mult decât un tablou); dacă aveți nevoie de o matrice, puteți face de ieșire.toArray(new String[0]);
Simplu de a Scuipa Șir de Spațiu
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());
}
}