Je dois pouvoir séparer une chaîne d'entrée par des virgules, des points-virgules ou des espaces blancs (ou un mélange des trois). Je voudrais aussi traiter plusieurs délimiteurs consécutifs dans l'entrée comme un seul délimiteur. Voici ce que j'ai jusqu'à présent:String.split() - chaîne principale vide correspondant avant le premier délimiteur?
String regex = "[,;\\s]+";
return input.split(regex);
Cela fonctionne, sauf quand la chaîne d'entrée commence par l'un des caractères délimiteurs, auquel cas le premier élément du tableau de résultat est une chaîne vide. Je ne veux pas que mon résultat ait des chaînes vides, de sorte que quelque chose comme, ",,,, ZERO ;,; ONE, TWO ;," renvoie juste un tableau à trois éléments contenant les chaînes capitalisées.
Existe-t-il une meilleure façon de faire cela que de supprimer les caractères principaux qui correspondent à mon reg-ex avant d'appeler String.split?
Merci d'avance!
Pas de réponse en tant que je ne me souviens pas de l'API regex Java, mais vous pouvez simplement rechercher des chaînes de non-délimiteurs au lieu de diviser sur les délimiteurs, par exemple en utilisant une regex comme '[^,; \ s] +'. –
Question apparemment identique, plus récente mais avec une meilleure réponse acceptée: https://stackoverflow.com/questions/9389503/how-to-prevent-java-lang-string-split-from-creating-a-leading-empty-string –