está usando el "."
como delimitador, debe romper el significado especial de la .
carbón.
El .
char en regex es "cualquier caracter" por lo que su división solo se divide según "cualquier caracter", que obviamente no es lo que busca.
Uso "\\."
como delimitador
Para obtener más información sobre las clases de caracteres predefinidos que puedas have a look at the tutorial.
Para obtener más información sobre expresiones regulares en general (incluye lo anterior), puede intentar this tutorial
EDITAR:
P. S. Lo que está haciendo (eliminar el número) se puede lograr con un trazador de líneas, utilizando el método String.replaceAll()
.
System.out.println(line.replaceAll("[0-9]+\\.\\s+", ""));
proporcionará salida
This is a test message
Para su ejemplo de entrada.
La idea es: [0-9]
es cualquier dígito. - El +
indica que puede haber un número cualquiera de ellos, que es mayor que 0. El \\.
es un punto (con rotura como se menciona anteriormente) y el \\s+
tiene al menos un espacio.
Todo se reemplaza por una cadena vacía.
Nota, sin embargo, para cadenas como: "1. this is a 2. test"
- proporcionará "esto es una prueba", y eliminar el "2" también, así que piense con cuidado si eso es lo que está buscando.
Split espera una expresión regular y '.' tiene un significado especial. – assylias
La declaración se ve rara. ¿Quiere decir 'for (int k = 0; k
Javier