2011-09-20 25 views
21

Me gustaría analizar todo el archivo basado en todos los posibles delimitadores como comas, dos puntos, punto y coma, puntos, espacios, hiphens, etc.Java string.split - por delimitador de caracteres múltiples

Supongamos que tengo una línea de hilo hipotética "Hola, X ¿Cómo-cómo estás: cualquiera tú?" Debería obtener una matriz de salida con elementos Hi, X, How, how, are, any y you.

¿Cómo especifico todos estos delimitadores en el método String.split?

Gracias de antemano.

Respuesta

23

String.split toma una expresión regular, en este caso, desea caracteres que no son de texto (expresiones regulares \W) para ser la división, por lo que es simplemente:

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

Si quería ser más explícitos, podría use los caracteres exactos en la expresión:

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

¿Por qué el operador or-ing en la expresión anterior? ¿Son necesarios? –

+0

@Hovercraft - no, pero para mí es más fácil de leer, así que a eso me refiero. –

+0

@Mark ¿Considera esto \ W regex el número como carácter no verbal? ¿Qué pasa si quiero permitir el número? – u449355

Cuestiones relacionadas