Separando palabras en un String con Java

Separar un texto por palabras puede ser útil en algunos programas. Buscando por Internet encontré (y mejoré levemente) este sencillo código que separa las palabras mediante expresiones regulares y las deja limpias de polvo y paja. La verdad me ha salvado la vida en más de una ocasión y más sencillo no puede ser:

Source   
  1. String cadena = "texto de que quieras";
  2. String delimitadores= "[ .,;?!¡¿\'\"\\[\\]]+";
  3. String[] palabrasSeparadas = cadena.split(delimitadores);

Esto nos dejará en el array “palabrasSeparadas”  cada palabra en cada posición del vector. Los delimitadores que se pueden utilizar se añaden en la variable “delimitadores” (¡viva el código autocomentado!). Lo que es un poco indescifrable a simple vista son los delimitadores que he usado. Por orden son: espacio . ; ? ! ¡ ¿ ‘ ” [ ]
El problema de lo ilegible que está el ejemplo es que los [ ]+ sirven para marcar el inicio y el fin del churro de caracteres que vamos a usar, por lo que para separar una palabra que esté contenida entre [ ] tendríamos que usar el carácter de escape, que es la barra invertida, pero que a su vez es también el carácter de escape en un String de Java, por lo que tenemos que añadir la doble barra invertida. De ahí que parezca que me haya puesto a teclear caracteres al tún tún.

Obviamente se pueden añadir tantos caracteres delimitadores como queramos, pero eso ya os lo dejo según vuestras necesidades.

13 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *