A partir de maintenant, j'utilise ce code pour faire ma première lettre en majuscule
String output = input.substring(0, 1).toUpperCase() + input.substring(1);
Cela semble très sale pour moi .. y at-il une manière directe ou élégante ..
Que dis-tu de ça:
String output = Character.toUpperCase(input.charAt(0)) + input.substring(1);
Je ne peux penser à rien de plus propre sans utiliser des bibliothèques externes, mais c'est définitivement meilleur que ce que vous avez actuellement.
Vous devriez jeter un oeil à StringUtils
class de Apache Commons Lang lib - il a method .capitalize()
Description de la lib:
Met en majuscule une chaîne en changeant la première lettre en cas de titre conformément à Character.toTitleCase (char). Aucune autre lettre n'est changée.
String out = Character.toUpperCase(inText.charAt(0)) + inText.substring(1).toLowerCase();
En supposant que vous puissiez utiliser Java 8, voici la manière fonctionnelle que personne ne demandait ...
import Java.util.Optional;
import Java.util.stream.IntStream;
public class StringHelper {
public static String capitalize(String source) {
return Optional.ofNullable(source)
.map(str -> IntStream.concat(
str.codePoints().limit(1).map(Character::toUpperCase),
str.codePoints().skip(1)))
.map(stream -> stream.toArray())
.map(arr -> new String(arr, 0, arr.length))
.orElse(null);
}
}
C'est élégant en ce sens qu'il gère les cas de chaîne nuls et vides sans instructions conditionnelles.
Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)
P.S = a est une chaîne.
public static void main(String[] args) {
String str = null;
String outStr = null;
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String: ");
str = sc.nextLine();
//c= Character.toUpperCase(str.charAt(0));
for(int i=0; i< (str.length());i++){
if(str.charAt(i)==' '){
outStr= outStr.substring(0,i+1)+str.substring(i+1,i+2).toUpperCase()+str.substring(i+2);
}else if(i==0){
outStr=str.substring(0,1).toUpperCase()+str.substring(1);
}
}
System.out.println("STRING::"+outStr);
}
Ici, tiens ma bière
String foo = "suresh";
String bar = foo.toUpperCase();
if(bar.charAt[0] == 'S'){
throw new SuccessException("bar contains 'SURESH' and has the first letter capital").
}