Poner en mayúsculas después de punto
En ocasiones necesitamos corregir un texto para poner en mayúscula el primer carácter de la cadena y también el que aparece después de cada punto.
Partimos de la siguiente frase:
hola juan. me ha gustado mucho. hagámonos público. mañana hablamos. luisEl resultado esperado es:
Hola juan. Me ha gustado mucho. Hagámonos público. Mañana hablamos. LuisMétodos utilizados
Sección titulada «Métodos utilizados»Para resolverlo usaremos los métodos substring(), toUpperCase() e indexOf(), junto con un bucle que recorra la cadena.
Utilizaremos dos variables: indice, que marcará el inicio de cada fragmento, e indicepunto, que almacenará la posición del siguiente punto.
Localizar el siguiente punto
Sección titulada «Localizar el siguiente punto»En la primera iteración, comenzamos al principio de la cadena y buscamos el primer punto:
int indice = 0;int indicepunto = frase.indexOf('.', indice);El método indexOf() devuelve la posición del carácter indicado a partir del índice inicial. Si no lo encuentra, devuelve un valor negativo.
Convertir la primera letra a mayúscula
Sección titulada «Convertir la primera letra a mayúscula»Una vez delimitado el fragmento, convertimos su primer carácter a mayúscula:
frase2 = frase2 + frase.substring(indice, indice + 1).toUpperCase();Después añadimos el resto del fragmento, desde el segundo carácter hasta el punto incluido:
frase2 = frase2 + frase.substring(indice + 1, indicepunto + 1);La variable frase contiene el texto original, mientras que frase2 almacena el resultado que vamos componiendo.
Recorrer todos los fragmentos
Sección titulada «Recorrer todos los fragmentos»Repetimos el proceso mientras queden puntos en la cadena:
int indice = 0;int indicepunto = frase.indexOf('.', indice);
while (indicepunto >= 0) { // Convertimos a mayúscula el primer carácter del fragmento frase2 = frase2 + frase.substring(indice, indice + 1).toUpperCase();
// Añadimos el resto del fragmento hasta el punto frase2 = frase2 + frase.substring(indice + 1, indicepunto + 1);
// Avanzamos hasta el siguiente fragmento indice = indicepunto + 1; indicepunto = frase.indexOf('.', indice);}Añadir el último fragmento
Sección titulada «Añadir el último fragmento»Al terminar el bucle todavía queda el texto comprendido entre el último punto y el final de la cadena. Lo añadimos usando .length():
frase2 = frase2 + frase.substring(indice, indice + 1).toUpperCase();frase2 = frase2 + frase.substring(indice + 1, frase.length());Finalmente, frase2 contendrá la frase completa con la primera letra y cada carácter posterior a un punto en mayúscula.
Descarga el código de Poner en mayúsculas después de punto
Aprende a poner en mayúscula la primera letra después de cada punto en Java usando indexOf, substring y toUpperCase con un sencillo bucle while.