Je sais que vous pouvez diviser votre chaîne en utilisant myString.split("something")
. Mais je ne sais pas comment diviser une chaîne en deux délimiteurs.
Exemple:
mySring = "abc==abc++abc==bc++abc";
J'ai besoin de quelque chose comme ça:
myString.split("==|++")
Quelle est son expression régulière?
Utilisez ceci :
myString.split("(==)|(\\+\\+)")
Comment je le ferais si je devais diviser en utilisant deux sous-chaînes:
String mainString = "This is a dummy string with both_spaces_and_underscores!"
String delimiter1 = " ";
String delimiter2 = "_";
mainString = mainString.replaceAll(delimiter2, delimiter1);
String[] split_string = mainString.split(delimiter1);
Remplacez toutes les instances du deuxième délimiteur par le premier et divisez par le premier.
Remarque: l'utilisation de replaceAll
vous permet d'utiliser l'expression rationnelle pour delimiter2
. Donc, vous devez réellement remplacer toutes les correspondances de delimiter2
Par une chaîne qui correspond à l'expression rationnelle de delimiter1
.
Vous pouvez utiliser ceci
mySring = "abc==abc++abc==bc++abc";
String[] splitString = myString.split("\\W+");
Expression régulière \ W + ---> il divisera la chaîne en fonction d'un caractère non Word.
Essaye ça
String str = "aa==bb++cc";
String[] split = str.split("={2}|\\+{2}");
System.out.println(Arrays.toString(split));
La réponse est un tableau de
[aa, bb, cc]
Le {2} correspond à deux caractères du caractère procédural. Soit = ou + (échappé) Le | correspond à chaque côté
J'échappe au\in Java donc le regex est en fait ={2}|\+{2}