Fractionner une chaîne en java sur plusieurs symboles

Je souhaite séparer une chaîne lorsque les symboles rencontrés “+, -, *, /, =” utilisent une fonction de fractionnement, mais cette fonction ne peut prendre qu’un argument. De plus, il ne fonctionne pas sur “+”. J’utilise le code suivant: –

Ssortingngname.split("Symbol"); 

Merci.

Ssortingng.split prend une expression régulière en argument.

Cela signifie que vous pouvez alterner n’importe quel symbole ou abstraction de texte dans un paramètre afin de scinder votre Ssortingng .

Voir la documentation ici .

Voici un exemple dans votre cas:

 Ssortingng toSplit = "a+bc*d/e=f"; Ssortingng[] splitted = toSplit.split("[-+*/=]"); for (Ssortingng split: splitted) { System.out.println(split); } 

Sortie:

 a b c d e f 

Remarques:

  • Les caractères réservés pour le Pattern s doivent avoir un double échappement avec \\ . Edit : Pas nécessaire ici.
  • Les crochets [] dans le motif indiquent une classe de caractères.
  • Plus sur Pattern s ici .

Vous pouvez utiliser une expression régulière:

 Ssortingng[] tokens = input.split("[+*/=-]"); 

Remarque: - doit être placé en première ou dernière position pour vous assurer qu’il n’est pas considéré comme un séparateur de plage.

Vous avez besoin d’une expression régulière. De plus, vous avez besoin de l’opérateur OR regex:

 Ssortingng[]tokens = Ssortingngname.split("\\+|\\-|\\*|\\/|\\="); 

Pour cela, vous devez utiliser une instruction regex appropriée. La plupart des symboles que vous avez listés sont réservés dans regex, vous devrez donc les échapper avec \ .

Une expression très basique serait \+|\-|\\|\*|\= . Relativement facile à comprendre, chaque symbole souhaité est échappé avec \ et chaque symbole est séparé par un | (ou) symbole. Si, par exemple, vous vouliez append ^ , il vous suffirait d’append |\^ à cette instruction.

Pour les tests et les expressions rapides, j’aime utiliser http://www.regexpal.com