Chaîne fractionnée Java à un tableau

J’ai besoin d’aide avec la méthode split() . J’ai la Ssortingng suivante:

 Ssortingng values = "0|0|0|1|||0|1|0|||"; 

Je dois mettre les valeurs dans un tableau. Il y a 3 chaînes possibles: “0”, “1” et “”

Mon problème est que quand j’essaie d’utiliser split() :

 Ssortingng[] array = values.split("\\|"); 

Mes valeurs ne sont enregistrées que jusqu’au dernier 0. Cela semble être la partie “|||” se coupe Qu’est-ce que je fais mal?

Merci

Ce comportement est explicitement documenté dans Ssortingng.split(Ssortingng regex) (emphase mine):

Cette méthode fonctionne comme si en invoquant la méthode split à deux arguments avec l’expression donnée et un argument limite de zéro. Les chaînes vides à la fin ne sont donc pas incluses dans le tableau résultant.

Si vous souhaitez que ces chaînes vides Ssortingng.split(Ssortingng regex, int limit) incluses, vous devez utiliser Ssortingng.split(Ssortingng regex, int limit) avec une valeur négative pour le second paramètre ( limit ):

 Ssortingng[] array = values.split("\\|", -1); 

Essaye ça

 Ssortingng[] array = values.split("\\|",-1); 

Considérez cet exemple:

 public class SsortingngSplit { public static void main(Ssortingng args[]) throws Exception{ Ssortingng testSsortingng = "Real|How|To

“; System.out.println (java.util.Arrays.toSsortingng(testSsortingng.split(“\\|”))); // output : [Real, How, To] } }

Le résultat n’inclut pas les chaînes vides entre le “|” séparateur. Pour garder les chaînes vides:

 public class SsortingngSplit { public static void main(Ssortingng args[]) throws Exception{ Ssortingng testSsortingng = "Real|How|To

“; System.out.println (java.util.Arrays.toSsortingng(testSsortingng.split(“\\|”, -1))); // output : [Real, How, To, , , ] } }

Pour plus de détails, visitez ce site: http://www.rgagnon.com/javadetails/java-0438.html

Ceci est prévu. Reportez-vous à Javadocs pour la split .

 Splits this ssortingng around matches of the given regular expression. 

Cette méthode fonctionne comme en appelant la méthode split à deux arguments (java.lang.Ssortingng, int) avec l’expression donnée et un argument limite de zéro. Les chaînes vides à la fin ne sont donc pas incluses dans le tableau résultant.