Saltar al contenido

Java: Dividir string cuando se encuentra una letra mayúscula

Te recomendamos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, saludos.

Solución:

Puede usar una expresión regular con anticipación positiva de ancho cero: encuentra letras mayúsculas pero no las incluye en el delimitador:

String s = "thisIsMyString";
String[] r = s.split("(?=\pUpper)");

Y(?=X) partidos Y seguido por Xpero no incluye X en el partido. Entonces (?=\pUpper) coincide con una secuencia vacía seguida de una letra mayúscula, y split lo usa como delimitador.

Consulte javadoc para obtener más información sobre la sintaxis de expresiones regulares de Java.

EDITAR: Por cierto, no funciona con thisIsMyÜberString. Para letras mayúsculas que no sean ASCII, necesita una clase de caracteres en mayúscula Unicode en lugar de una POSIX:

String[] r = s.split("(?=\pLu)");

String[] camelCaseWords = s.split("(?=[A-Z])");

Para cualquiera que se pregunte cómo es el Patrón cuando la Cadena a dividir podría comenzar con un carácter en mayúscula:

String s = "ThisIsMyString";
String[] r = s.split("(?<=.)(?=\pLu)");
System.out.println(Arrays.toString(r));

da: [This, Is, My, String]

Reseñas y valoraciones del artículo

Ten en cuenta mostrar esta división si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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