it-swarm.com.de

Machen Sie den ersten Buchstaben von String in Java

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.

51
arshajii

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.

28
user
String out = Character.toUpperCase(inText.charAt(0)) + inText.substring(1).toLowerCase();
2

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.

0
souldzin
Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)

P.S = a ist eine Zeichenfolge.

0
Germa Vinsmoke
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);
}
0
Anubhav

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").
}
0
Fanick