web-dev-qa-db-ja.com

javaで文字列の最初の文字を大文字にする

今のところ、このコードを使用して、文字列の大文字で最初の文字を作成しています

String output = input.substring(0, 1).toUpperCase() + input.substring(1);

これは私にとって非常に汚いようです。直接またはエレガントな方法があります。

24
Suresh Atta

これはどう:

String output = Character.toUpperCase(input.charAt(0)) + input.substring(1);

外部ライブラリを使用せずにクリーンなものを考えることはできませんが、これはあなたが現在持っているものよりも間違いなく優れています。

51
arshajii

StringUtilsApache Commons Lang libのクラス-メソッドがあります .capitalize()

ライブラリからの説明:

Character.toTitleCase(char)に従って、最初の文字をタイトルケースに変更して文字列を大文字にします。他の文字は変更されません。

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

Java 8を使用できると仮定すると、これは誰も要求していない機能的な方法です...

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);
    }
}

条件ステートメントなしでnullおよび空の文字列のケースを処理するという点でエレガントです。

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

P.S = aは文字列です。

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

ここでは、 私のビールを保持

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