J'ai besoin de diviser ma chaîne par des espaces . Pour cela, j'ai essayé:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Mais cela ne semble pas fonctionner.
Ce que vous avez devrait fonctionner. Si, toutefois, les espaces fournis sont remplacés par défaut par ... autre chose? Vous pouvez utiliser le regex des espaces blancs:
str = "Hello I'm your String";
String[] splited = str.split("\\s+");
Cela fera diviser votre chaîne en jetons, quel que soit le nombre d'espaces consécutifs.
En remarque, je ne suis pas sûr que "scindé" soit un mot :) Je pense que l'état d'être victime d'une scission est également "scindé". C'est une de ces questions de grammaire délicates :-) N'essayant pas d'être pointilleux, j'ai juste pensé que je le transmettrais!
Bien que la réponse acceptée soit bonne, sachez que vous allez finir avec une chaîne vide si votre chaîne d'entrée commence par un espace blanc. Par exemple, avec:
String str = " Hello I'm your String";
String[] splitStr = str.split("\\s+");
Le résultat sera:
splitStr[0] == "";
splitStr[1] == "Hello";
splitStr[2] == "I'm";
splitStr[3] == "Your";
splitStr[4] == "String";
Donc, vous voudrez peut-être couper votre chaîne avant de la scinder:
String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
Je pense que le fait de placer une expression régulière dans les parenthèses str.split devrait résoudre le problème. La méthode Java String.split () étant basée sur des expressions régulières, il vous faut:
str = "Hello I'm your String";
String[] splitStr = str.split("\\s+");
Utilisez Stringutils.split()
pour scinder la chaîne en blancs. Par exemple, StringUtils.split("Hello World")
renvoie "Hello" et "World";
Afin de résoudre le cas mentionné, nous utilisons la méthode split comme celle-ci.
String split[]= StringUtils.split("Hello I'm your String");
lorsque nous imprimons le tableau divisé, le résultat sera:
Bonjour
Je suis
votre
Chaîne
Essaye celui-là
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);
si, d'une manière ou d'une autre, vous ne voulez pas utiliser la méthode String Split, vous pouvez utiliser la classe StringTokenizer en Java en tant que.
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;
}
Une autre manière serait:
import Java.util.regex.Pattern;
...
private static final Pattern SPACE = Pattern.compile(" ");
String[] arr = SPACE.split(str); // str is the string to be split
Je l'ai vu ici
Essayer
String[] splited = str.split("\\s");
http://download.Oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
OK, nous devons donc nous séparer car vous avez déjà obtenu la réponse, je la généraliserais.
Si vous souhaitez fractionner une chaîne par des espaces, séparateur (caractères spéciaux).
Tout d’abord, supprimez l’espace principal car ils créent la plupart des problèmes.
str1 = " Hello I'm your String ";
str2 = " Are you serious about this question_ boy, aren't you? ";
Commencez par supprimer l’espace de début qui peut être espace, tabulation, etc.
String s = str1.replaceAll("^\\s+","");//starting with whitespace one or more
Maintenant, si vous voulez diviser par espace ou tout caractère spécial.
String[] sa = s.split("[^\\w]+");//split by any non Word char
Mais comme w contient [a-zA-Z_0-9], donc si vous voulez séparer par un trait de soulignement (_), utilisez aussi
String[] sa = s.split("[!,? ._'@]+");//for str2 after removing leading space
Depuis que ces réponses ont été publiées il y a longtemps, voici une autre façon plus courante de faire ce qui est demandé:
List<String> output = new ArrayList<>();
try (Scanner sc = new Scanner(inputString)) {
while (sc.hasNext()) output.add(sc.next());
}
Maintenant vous avez une liste de chaînes (ce qui est sans doute mieux qu'un tableau); si vous avez besoin d'un tableau, vous pouvez faire output.toArray(new String[0]);
Simple à diviser chaîne par espace
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());
}
}
Exemple très simple ci-dessous:
J'espère que ça aide.
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
vous pouvez séparer la chaîne en utilisant le code ci-dessous
String thisString="Hello world";
String[] parts = theString.split(" ");
String first = parts[0];//"hello"
String second = parts[1];//"World"
Voici une méthode pour couper une chaîne qui a un "," ou un espace
private String shorterName(String s){
String[] sArr = s.split("\\,|\\s+");
String output = sArr[0];
return output;
}