Java Language Changer la casse des caractères dans une chaîne


Exemple

Le type String fournit deux méthodes pour convertir des chaînes entre majuscules et minuscules:

  • toUpperCase pour convertir tous les caractères en majuscules
  • toLowerCase pour convertir tous les caractères en minuscules

Ces méthodes renvoient toutes les deux les chaînes converties en tant que nouvelles instances String : les objets String origine ne sont pas modifiés car String est immuable dans Java. Voir cela pour plus sur l'immutabilité: Immuabilité des chaînes en Java

String string = "This is a Random String";
String upper = string.toUpperCase();
String lower = string.toLowerCase();

System.out.println(string);   // prints "This is a Random String"
System.out.println(lower);    // prints "this is a random string"
System.out.println(upper);    // prints "THIS IS A RANDOM STRING"

Les caractères non alphabétiques, tels que les chiffres et les signes de ponctuation, ne sont pas affectés par ces méthodes. Notez que ces méthodes peuvent également traiter de manière incorrecte certains caractères Unicode sous certaines conditions.


Remarque : Ces méthodes sont sensibles aux paramètres régionaux et peuvent produire des résultats inattendus si elles sont utilisées sur des chaînes destinées à être interprétées indépendamment des paramètres régionaux. Des exemples sont les identificateurs de langage de programmation, les clés de protocole et HTML balises HTML .

Par exemple, "TITLE".toLowerCase() dans une locale turque retourne " tıtle ", où ı (\u0131) est le caractère LATIN SMALL LETTER DOTLESS I. Pour obtenir des résultats corrects pour les chaînes insensibles aux paramètres régionaux, transmettez Locale.ROOT tant que paramètre à la méthode de conversion de casse correspondante (par exemple, toLowerCase(Locale.ROOT) ou toUpperCase(Locale.ROOT) ).

Bien que l'utilisation de Locale.ENGLISH soit également correcte dans la plupart des cas, la méthode invariante de la langue est Locale.ROOT .

Une liste détaillée des caractères Unicode nécessitant un boîtier spécial est disponible sur le site Web du Consortium Unicode .

Modification de la casse d'un caractère spécifique dans une chaîne ASCII:

Pour modifier la casse d'un caractère spécifique d'une chaîne ASCII, l'algorithme suivant peut être utilisé:

Pas:

  1. Déclarez une chaîne.
  2. Entrez la chaîne.
  3. Convertissez la chaîne en un tableau de caractères.
  4. Entrez le caractère à rechercher.
  5. Recherchez le caractère dans le tableau de caractères.
  6. Si trouvé, vérifiez si le caractère est en minuscule ou en majuscule.
    • Si majuscule, ajoutez 32 au code ASCII du caractère.
    • Si en minuscule, soustrayez 32 du code ASCII du caractère.
  7. Modifiez le caractère d'origine du tableau Caractère.
  8. Convertissez le tableau de caractères dans la chaîne.

Voila, la caisse du personnage est changée.

Un exemple de code pour l'algorithme est:

Scanner scanner = new Scanner(System.in);
System.out.println("Enter the String");
String s = scanner.next();
char[] a = s.toCharArray();
System.out.println("Enter the character you are looking for");
System.out.println(s);
String c = scanner.next();
char d = c.charAt(0);

for (int i = 0; i <= s.length(); i++) {
    if (a[i] == d) {
        if (d >= 'a' && d <= 'z') {
            d -= 32;
        } else if (d >= 'A' && d <= 'Z') {
            d += 32;
        }
        a[i] = d;
        break;
    }
}
s = String.valueOf(a);
System.out.println(s);