Ab sofort verwende ich diesen Code, um meinen ersten Buchstaben in einer Zeichenkette darzustellen
String output = input.substring(0, 1).toUpperCase() + input.substring(1);
Dies scheint mir sehr schmutzig zu sein .. gibt es einen direkten oder eleganten Weg ..
Wie wäre es damit:
String output = Character.toUpperCase(input.charAt(0)) + input.substring(1);
Ich kann mir nichts Besseres vorstellen, ohne externe Bibliotheken zu verwenden, aber dies ist definitiv besser als das, was Sie derzeit haben.
Sie sollten einen Blick auf StringUtils
class aus Apache Commons Lang lib werfen - es hat die Methode .capitalize()
Beschreibung aus der lib:
Schreibt eine Zeichenfolge in Großbuchstaben, die den Anfangsbuchstaben nach .__ ändert. Character.toTitleCase (char). Es werden keine anderen Buchstaben geändert.
String out = Character.toUpperCase(inText.charAt(0)) + inText.substring(1).toLowerCase();
Angenommen, Sie können Java 8 verwenden, hier ist die Funktionsweise, nach der niemand gefragt hat ...
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);
}
}
Es ist insofern elegant, als es die Null- und Leerzeichenfolgen ohne Bedingungsanweisungen behandelt.
Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)
P.S = a ist eine Zeichenfolge.
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);
}
Hier, halte mein Bier
String foo = "suresh";
String bar = foo.toUpperCase();
if(bar.charAt[0] == 'S'){
throw new SuccessException("bar contains 'SURESH' and has the first letter capital").
}