J'utilise Java pour obtenir un String
entrée de l'utilisateur. J'essaie de mettre en majuscule la première lettre de cette entrée.
J'ai essayé ceci:
String name;
BufferedReader br = new InputStreamReader(System.in);
String s1 = name.charAt(0).toUppercase());
System.out.println(s1 + name.substring(1));
ce qui a conduit à ces erreurs de compilation:
Incompatibilité de type: impossible de convertir InputStreamReader en BufferedReader
Impossible d'appeler toUppercase () sur le caractère de type primitif
java
string
capitalize
sumithra
la source
la source
Réponses:
Avec votre exemple:
la source
StringUtils.capitalize(..)
de commons-langla source
StringUtils.capitalize( "fred from jupiter" );
produit"Fred from jupiter"
. Facile ...: DLe code de version plus court / plus rapide pour mettre en majuscule la première lettre d'une chaîne est:
la valeur de
name
est"Stackoverflow"
la source
Utilisez la bibliothèque commune d'Apache. Libérez votre cerveau de ces éléments et évitez les pointeurs nuls et les exceptions hors index
Étape 1:
Importez la bibliothèque lang commune d'Apache en la mettant dans les
build.gradle
dépendancesÉtape 2:
Si vous êtes sûr que votre chaîne est entièrement en minuscules, ou tout ce dont vous avez besoin est d'initialiser la première lettre, appelez directement
Si vous voulez vous assurer que seule la première lettre est en majuscule, comme cela pour un
enum
, appelez d'toLowerCase()
abord et gardez à l'esprit qu'il lanceraNullPointerException
si la chaîne d'entrée est nulle.Voici d'autres exemples fournis par apache. c'est gratuit
Remarque:
WordUtils
est également inclus dans cette bibliothèque, mais est obsolète. Veuillez ne pas utiliser cela.la source
How to capitalize the first letter of a String in Java?
.Java:
simplement une méthode d'aide pour mettre en majuscule chaque chaîne.
Après cela, appelez simplement
str = capitalize(str)
Kotlin:
la source
str
est nul. Vérifiez que la chaîne n'est pas nulle et contient au moins un caractère avant de l'utiliser.Ce que vous voulez faire, c'est probablement ceci:
(convertit le premier caractère en majuscule et ajoute le reste de la chaîne d'origine)
En outre, vous créez un lecteur de flux d'entrée, mais ne lisez jamais aucune ligne. Il en
name
sera toujours ainsinull
.Cela devrait fonctionner:
la source
WordUtils.capitalize(java.lang.String)
d' Apache Commons .la source
La solution ci-dessous fonctionnera.
Vous ne pouvez pas utiliser toUpperCase () sur un caractère primitif, mais vous pouvez d'abord créer une chaîne entière en majuscules, puis prendre le premier caractère, puis l'ajouter à la sous-chaîne comme indiqué ci-dessus.
la source
Utilisez
WordUtils.capitalize(str)
.la source
Le plus court aussi:
A travaillé pour moi.
la source
Définissez la chaîne en minuscules, puis définissez la première lettre en majuscules comme ceci:
puis de mettre en majuscule la première lettre:
substring obtient juste un morceau d'une plus grande chaîne, puis nous les combinons à nouveau.
la source
Qu'en est-il de WordUtils.capitalizeFully () ?
la source
Utilisez cette méthode utilitaire pour obtenir toutes les premières lettres en majuscule.
la source
la source
Vous pouvez également essayer ceci:
C'est mieux (optimisé) qu'avec l'utilisation d'une sous-chaîne. (mais ne vous inquiétez pas sur les petites cordes)
la source
Vous pouvez utiliser
substring()
pour ce faire.Mais il y a deux cas différents:
Cas 1
Si le
String
fichier en majuscule est destiné à être lisible par l'homme, vous devez également spécifier les paramètres régionaux par défaut:Cas 2
Si le fichier que
String
vous mettez en majuscule est destiné à être lisible par machine, évitez de l'utiliserLocale.getDefault()
car la chaîne renvoyée sera incohérente dans différentes régions et dans ce cas, spécifiez toujours les mêmes paramètres régionaux (par exemple,toUpperCase(Locale.ENGLISH)
). Cela garantira la cohérence des chaînes que vous utilisez pour le traitement interne, ce qui vous aidera à éviter les bogues difficiles à trouver.Remarque: Vous n'avez pas besoin de spécifier
Locale.getDefault()
pourtoLowerCase()
, car cela se fait automatiquement.la source
Dans Android Studio
Ajoutez cette dépendance à votre
build.gradle (Module: app)
Vous pouvez maintenant utiliser
la source
REMARQUE: si vous avez déjà une dépendance Apache Common Lang, envisagez d'utiliser leur StringUtils.capitalize comme d'autres réponses le suggèrent.
MISE EN ŒUVRE: https://github.com/spring-projects/spring-framework/blob/64440a5f04a17b3728234afaa89f57766768decb/spring-core/src/main/java/org/springframework/util/StringUtils.java#L5
REF: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html#capitalize-java.lang.String-
la source
ÇA MARCHE 101%
la source
C'est juste pour vous montrer que vous ne vous trompiez pas.
Remarque: ce n'est pas du tout la meilleure façon de le faire. C'est juste pour montrer à l'OP que cela peut aussi être fait en utilisant
charAt()
. ;)la source
Character.toString(name.charAt(0))
plutôt que de""+name.charAt(0)
montrer ce que je veux vraiment faire.Cela fonctionnera
la source
Vous pouvez utiliser le code suivant:
la source
essaye celui-là
Ce que fait cette méthode, c'est que, Considérez le mot "bonjour le monde" cette méthode le transforme en "Bonjour le monde" capitalisez le début de chaque mot.
la source
Les réponses données concernent la mise en majuscule de la première lettre d'un seul mot. utilisez le code suivant pour mettre une chaîne entière en majuscule.
production :
This Is A Random String
la source
Si Input est UpperCase, alors utilisez ce qui suit:
str.substring (0, 1) .toUpperCase () + str.substring (1) .toLowerCase ();
Si Input est LowerCase, alors utilisez ce qui suit:
str.substring (0, 1) .toUpperCase () + str.substring (1);
la source
Jetez un œil à ACL WordUtils.
WordUtils.capitalize ("votre chaîne") == "Votre chaîne"
Comment mettre en majuscule chaque première lettre d'un mot dans une chaîne?
la source
la source
Vous pouvez utiliser le code suivant:
exemple de test avec JUnit:
la source
Utiliser
commons.lang.StringUtils
la meilleure réponse est:Je le trouve génial car il enveloppe la chaîne avec un StringBuffer. Vous pouvez manipuler le StringBuffer comme vous le souhaitez et en utilisant la même instance.
la source
Encore un autre exemple, comment mettre en majuscule la première lettre de l'entrée utilisateur:
la source