Javaで文字列の最初の文字を大文字にする
この投稿では、Javaで文字列の最初の文字を大文字にする方法について説明します。
1.使用する String.toUpperCase()
方法
文字列から最初の文字を抽出し、を呼び出して大文字に変換するという考え方です toUpperCase()
方法。最初の文字を大文字に変換したら、文字列連結演算子を使用して、残りの文字列と連結します。
文字列はJavaでは不変であるため、実際の文字列に変更を加えることはできないことに注意してください。このソリューションは、新しい文字列インスタンスを作成します。次のコードは、 substring()
方法。
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) { String str = "capitalize me"; str = str.substring(0, 1).toUpperCase() + str.substring(1); System.out.println(str); } } |
出力:
Capitalize me
文字列が空の場合、上記のプログラムは StringIndexOutOfBoundsException
。文字列がnullの場合、 NullPointerException
スローされます。次のプログラムは、これらの両方の例外を処理する文字列を大文字にするユーティリティメソッドを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Main { public static String capitalize(String str) { if (str == null || str.length() == 0) { return str; } return str.substring(0, 1).toUpperCase() + str.substring(1); } public static void main(String[] args) { String str = "capitalize me"; System.out.println(capitalize(str)); } } |
出力:
Capitalize me
2.使用する StringUtils.capitalize()
方法
別の解決策は、 StringUtils
ApacheCommonsLangライブラリのクラス。それはすでに提供しています capitalize()
同じ目的を果たす方法。
1 2 3 4 5 6 7 8 9 10 |
import org.apache.commons.lang3.StringUtils; public class Main { public static void main(String[] args) { String str = "capitalize me"; System.out.println(StringUtils.capitalize(str)); } } |
出力:
Capitalize me
2.使用する WordUtils.capitalize()
方法
文字列内の各単語の最初の文字を大文字にする必要がある場合は、 capitalize()
からの方法 WordUtils
クラス。
1 2 3 4 5 6 7 8 9 10 |
import org.apache.commons.text.WordUtils; public class Main { public static void main(String[] args) { String str = "iKEA store"; System.out.println(WordUtils.capitalize(str)); } } |
出力:
IKEA Store
最初の文字を大文字にし、各単語の残りの文字を小文字に変換する必要がある場合は、 capitalizeFully()
代わりにメソッド。
1 2 3 4 5 6 7 8 9 10 |
import org.apache.commons.text.WordUtils; public class Main { public static void main(String[] args) { String str = "iKEA store"; System.out.println(WordUtils.capitalizeFully(str)); } } |
出力:
Ikea Store
4.StreamAPIの使用
または、Java 8を使用すると、空白で区切られたすべての単語のストリームを取得し、 同じアプローチ この投稿で前に説明しました。次のソリューションはこれを示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static String capitalizeWord(String word) { if (word == null || word.length() == 0) { return word; } return word.substring(0, 1).toUpperCase() + word.substring(1); } public static String capitalize(String str) { if (str == null || str.length() == 0) { return str; } return Stream.of(str.trim().split("\\s+")) .map(Main::capitalizeWord) .collect(Collectors.joining(" ")); } public static void main(String[] args) { String str = "capitalize me"; System.out.println(capitalize(str)); } } |
出力:
Capitalize Me
これで、Javaで文字列の最初の文字を大文字にすることができます。