2013-08-17 29 views
8

Per due stringhe di esempio a temperatura variabile come questi:String.split() --- Come si trattano i delimitatori consecutivi come uno?

(1) "|RYVG|111|9|" 
(2) "|RYVG|111||9|" 

voglio fare quanto segue:

String splitRating[] = temp.split("\\|",); 

ma voglio che il risultato sia lo stesso, che è:

splitrating[0] = "" 
splitrating[1] = "RYVG" 
splitrating[2] = "111" 
splitrating[3] = "9 

Ciò significa che devo trattare quel doppio "|" come un delimitatore. C'è un modo per farlo mentre si utilizza ancora String.split()?

risposta

13

Aggiungi un + per abbinare una o più istanze del tubo:

temp.split("\\|+"); 
1

provare questo: -

String splitRating[] = temp.split("\\|+"); 
0

sì è possibile

class Split 
{ 
public static void main(String[] args) 
{ 
    String temp="|RYVG|111||9|"; 

    String splitRating[] = temp.split("\\|+"); 

    for(String split:splitRating){ 
    System.out.println(split); 
} 
} 
    } 
0

StringUtils metodo split considera i delimitatori consecutivi come un delimitatore.

org.apache.commons.lang.StringUtils.split("|"); 
Problemi correlati