Java split string per array

Ho bisogno di aiuto con il metodo split() . Ho la seguente String :

 String values = "0|0|0|1|||0|1|0|||"; 

Ho bisogno di mettere i valori in un array. Ci sono 3 possibili stringhe: “0”, “1” e “”

Il mio problema è che quando provo a usare split() :

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

I miei valori vengono salvati solo fino all’ultimo 0. Sembra la parte “|||” viene tagliato. Che cosa sto facendo di sbagliato?

Grazie

Questo comportamento è esplicitamente documentato in String.split(String regex) (enfasi mia):

Questo metodo funziona come se invocando il metodo split a due argomenti con l’espressione data e un argomento limit di zero. Le stringhe vuote finali non sono quindi incluse nell’array risultante.

Se si desidera includere quelle stringhe vuote finali, è necessario utilizzare String.split(String regex, int limit) con un valore negativo per il secondo parametro ( limit ):

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

Prova questo

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

Considera questo esempio:

 public class StringSplit { public static void main(String args[]) throws Exception{ String testString = "Real|How|To

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

Il risultato non include le stringhe vuote tra “|” separatore. Per mantenere le stringhe vuote:

 public class StringSplit { public static void main(String args[]) throws Exception{ String testString = "Real|How|To

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

Per ulteriori dettagli, visitare questo sito Web: http://www.rgagnon.com/javadetails/java-0438.html

Questo è previsto. Fare riferimento a Javadocs per split .

 Splits this string around matches of the given regular expression. 

Questo metodo funziona come se invocando il metodo split a due argomenti (java.lang.String, int) con l’espressione data e un argomento limit di zero. Le stringhe vuote finali non sono quindi incluse nell’array risultante.