0
votes

Comment puis-je capitaliser la première lettre de chaque mot dans une chaîne?

Résultat attendu:

public static void main(String args[]) {
    String input = "heLlo wOrLd";

    String output = input.substring(0, 1).toUpperCase() + input.substring(1).toLowerCase();

    System.out.println(output);
}


6 commentaires

@Schared la sortie que je reçois: Bonjour World .... Sortie attendue: Bonjour World


Utilisez .split ("") pour casser la phrase en fonction des espaces, appliquez votre code de sous-chaîne pour effectuer le boîtier supérieur / inférieur à chaque chaîne de la matrice renvoyée.


Est-ce que cela répond à votre question? Comment capitaliser le premier caractère de chaque mot dans une chaîne


@Ohgodspiders no. Dans mon cas, certains caractères sont supérieurs et minuscules entre le mot. Je dois aussi faire en minuscule.


Votre titre de question et votre production attendue sont différentes


Notez que, si les réponses dans la duplication liée (possible) ne modifient que la première lettre de chaque mot, tout ce que vous avez à faire pour utiliser l'une des solutions dans la question liée est un tolowercase () Sur votre chaîne source d'abord (utilisez l'une des méthodes pour capitaliser la première lettre de chaque mot).


4 Réponses :


0
votes

Essayez ceci:

    String input = "heLlo wOrLd";

    String a []= input.split(" ");
    String output = "";
    for (String s:a){
        output = output + s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase() + " ";

    }
    System.out.println(output);


0 commentaires

2
votes

Si vous souhaitez utiliser des flux, vous pouvez le faire:

String output = Arrays.stream(input.split(" "))
                      .map(word -> word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase())
                      .collect(Collectors.joining(" "));


0 commentaires

0
votes

Je présume que vous allez essayer d'autres phrases de mots. Ce code est efficace pour toute entrée.

        String input = scanner.nextLine();
        String[] array = input.split(" "); //separates the input by spaces
        String output = "";

        for (int i = 0; i < array.length; i++) {
            String word = array[i];
            String firstLetter = word.substring(0, 1).toUpperCase();
            String otherLetters = word.substring(1, word.length()).toLowerCase();

            word = firstLetter + otherLetters;
            output += word + " ";
        }

        System.out.println(output);


0 commentaires

1
votes

Ceci est assez explicite. Il convertit simplement à une chaîne minuscule, scindre sur l'espace blanc puis remplace le premier caractère de chaque mot avec la version majuscule. xxx

ou flux (mais pas aussi efficace que la première méthode ). Il fait exactement la même chose, mais appelle un collectionneur pour remonter la chaîne en se joignant à un espace. xxx


0 commentaires