Mise en majuscule ds 1ere letr d'1 JTextField
Résolu/Fermé
coolanso
Messages postés
75
Date d'inscription
jeudi 12 août 2010
Statut
Membre
Dernière intervention
5 juillet 2014
-
6 déc. 2011 à 15:15
Utilisateur anonyme - 7 déc. 2011 à 03:36
Utilisateur anonyme - 7 déc. 2011 à 03:36
A voir également:
- Mise en majuscule ds 1ere letr d'1 JTextField
- Mise en forme conditionnelle excel - Guide
- É majuscule - Guide
- Mettre un texte en majuscule - Guide
- Mise à jour pilote - Guide
- Mise a jour airpods - Guide
2 réponses
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
6 déc. 2011 à 15:27
6 déc. 2011 à 15:27
trim() enlève les espaces, donc split(" ") n'a plus de sens.
Voici une manière propre de faire (utiliser StringBuilder évite de recréer plein d'objets String comme tu fais avec les += et les concat)
Voici une manière propre de faire (utiliser StringBuilder évite de recréer plein d'objets String comme tu fais avec les += et les concat)
public static String maj(String s) { String[] tab = s.split("\\s"); StringBuilder sb = new StringBuilder(); for (int i=0, n=tab.length; i<n; i++) { sb.append(tab[i].substring(0,1).toUpperCase(Locale.FRANCE)); sb.append(tab[i].substring(1).toLowerCase(Locale.FRANCE)); if (i!=n-1) sb.append(" "); } return sb.toString(); } System.out.println(maj("naPOLéoN boNapARte")); // Napoléon Bonaparte
Utilisateur anonyme
7 déc. 2011 à 03:36
7 déc. 2011 à 03:36
Salut,
Un petit détail KX:
"trim() enlève les espaces, donc split(" ") n'a plus de sens."
trim() enlève seulement les espaces possibles en début et en fin de l'objet String.
Un petit détail KX:
"trim() enlève les espaces, donc split(" ") n'a plus de sens."
trim() enlève seulement les espaces possibles en début et en fin de l'objet String.
//Dans ce petit code il n'est pas vérifié qu'à partir de la seconde lettre il n'y a que des minuscules. String jtfPrenom = " pierre paul Jacques "; jtfPrenom = jtfPrenom.trim(); // pour supprimer les espaces possibles en début ou fin System.out.println("jtfPrenom = " + jtfPrenom); String[] prenoms = jtfPrenom.split(" +"); for(int i = 0; i < prenoms.length; i++) { //System.out.println("Pénom " + (i+1) + ": " + prenoms[i]); String premLettre = prenoms[i].substring(0,1).toUpperCase(); //System.out.println("premLettre = " + premLettre); String prenomNew = premLettre + prenoms[i].substring(1); //System.out.println("Prenom new " + (i+1) + ": " + prenomNew); prenoms[i] = prenomNew; } // Le résultat: for(int i = 0; i < prenoms.length; i++) { System.out.println("Pénom new " + (i+1) + ": " + prenoms[i]); }
6 déc. 2011 à 15:44
S'il y a plusieurs espaces entre deux noms il faut plutôt considérer split("\\s+") au lieu de split("\\s")