2011-09-20 14 views
21

Vorrei analizzare l'intero file in base a tutti i delimitatori possibili come virgole, due punti, punti-colon, punti, spazi, ecc.Java string.split - da delimitatore a più caratteri

Supponiamo di avere una linea di stringa ipotetica "Ciao, X How-how are: any you?" Dovrei ottenere l'array di output con gli elementi Ciao, X, Come, come, sono, chiunque altro.

Come specificare tutti questi delimitatori nel metodo String.split?

Grazie in anticipo.

risposta

23

String.split prende un'espressione regolare, in questo caso, si vuole caratteri non-parola (regex \W) per essere la scissione, quindi è semplicemente:

String input = "Hi,X How-how are:any you?"; 
String[] parts = input.split("[\\W]"); 

Se si voleva essere più esplicito, si potrebbe utilizzare i caratteri esatti nell'espressione:

String[] parts = input.split("[,\\s\\-:\\?]"); 
+0

perché l'operatore di oring in tale espressione sopra? Sono necessari? –

+0

@Hovercraft - no, ma per me è più facile da leggere, quindi è quello che vado con. –

+0

@Mark Questo \ W regex considera il numero come carattere non word? Cosa succede se voglio consentire il numero? – u449355

Problemi correlati