jueves, 12 de septiembre de 2024

Java 031 ► Convertir la primer letra de cada palabra de una frase en mayúscula

Ejercicio 031: Tomar un String con una frase y convertir la primer letra de cada palabra en mayúscula.

Hay muchas formas de hacerlo, en este caso trataremos al String como un arreglo de caracteres, es decir, se recorrerá y se irá detectando el inicio de cada palabra para convertirla a mayúscula.

Entrada:
String frase = "al mal tiempo buena cara"

Salida:
Imprimir "Al Mal Tiempo Buena Cara"

public class Java_031 {
    public static void main(String[] args) {
        String frase = "al mal tiempo buena cara";

        for (int i=0; i < frase.length(); i++) {
            if ((i==0) || (frase.charAt(i - 1) == ' ')) {
                System.out.print(Character.toUpperCase(frase.charAt(i)));
            } else {
                System.out.print(frase.charAt(i));
            }
        }
    }
}


Explicación:

Dado que el String es como un arreglo de caracteres se puede recorrer con un for, éste debe iniciar en 0 e ir hasta el tamaño del String menos 1, ya que la primer posición del String es la 0 y si este tiene 24 caracteres la última posición es la 23, por ello se pone hasta i < frase.length, donde "length" devuelve el tamaño del String.

En el if se verifican dos cosas: uno, que i sea 0, eso significa que es el primer caracter de la frase; dos, que el caracter en la posición i-1 sea un espacio, eso indicaría que es otra palabra. El if usa un OR que verifica que se cumpla al menos una de las dos condiciones, si es así entonces convierte el caracter de la posición actual en mayúscula y lo imprime. Si no se cumple ninguna de las dos entra el "else" y solo imprime el caracter tal cual está en el String.

Para este ejercicio se utilizaron los métodos de Java: charAt() y toUpperCase() pertenecientes a la clase Character, estos y otros métodos se pueden consultar aquí: Métodos de Character.

No hay comentarios:

Publicar un comentario