Java で文字列の最初の文字を大文字にする方法

Payel Ganguly 2023年10月12日
  1. toCharArray() メソッドに関連付けられた upperCaseFirst() を用いた文字列の最初の文字の大文字化
  2. toUpperCase() メソッドと appendTail() メソッドを用いた文字列の最初の文字の大文字化
  3. String.substring() を用いて文字列の最初の文字を大文字にする
  4. 文字列の最初の文字を大文字にするには String.substring() メソッドを用いる関数 capitalize() を用いる
Java で文字列の最初の文字を大文字にする方法

このチュートリアル記事では、Java を使って文字列の最初の文字を大文字にする方法を紹介します。与えられた string 値の最初の文字を大文字に変換するために使用される一般的なメソッドがいくつかあります。様々なメソッドは upperCaseFirst() メソッドと toCharArray() メソッド、toUpperCase() メソッドと appendTail() メソッド、String.substring() メソッド、capitalize() 関数と String.substring() メソッドです。それぞれのメソッドの実装について例を挙げて説明します。

toCharArray() メソッドに関連付けられた upperCaseFirst() を用いた文字列の最初の文字の大文字化

この過程では、string の値を受け取り、それを文字の配列に変換する upperCaseFirst() メソッドを導入します。次に、Character クラスと toUpperCase() メソッドを用いて文字配列の最初の要素を大文字にします。最後に、String Constructor を用いて文字配列を文字列に変換します。以下の例を見てみましょう。

import java.io.*;
import java.lang.*;
import java.util.*;

public class Main {
  public static String upperCaseFirst(String val) {
    char[] arr = val.toCharArray();
    arr[0] = Character.toUpperCase(arr[0]);
    return new String(arr);
  }

  public static void main(String[] args) {
    String val1 = "java";
    String val2 = "advanced java";

    String output = upperCaseFirst(val1);
    System.out.println(val1);
    System.out.println(output);

    output = upperCaseFirst(val2);
    System.out.println(val2);
    System.out.println(output);
  }
}

出力:

java
Java
advanced java
Advanced java

toUpperCase() メソッドと appendTail() メソッドを用いた文字列の最初の文字の大文字化

抜け道では、toUpperCase()appendTail() の 2つのメソッドが登場します。これら 2つのメソッドを 1つのアプリケーション内で実装するために、regex.Matcherregex.Pattern パッケージをインポートします。以下の例では、これらについて詳しく説明します。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    String str = "hello world!";
    System.out.println(str);
    StringBuffer strbf = new StringBuffer();
    Matcher match = Pattern.compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher(str);
    while (match.find()) {
      match.appendReplacement(strbf, match.group(1).toUpperCase() + match.group(2).toLowerCase());
    }
    System.out.println(match.appendTail(strbf).toString());
  }
}

出力:

hello world!
Hello World!

String.substring() を用いて文字列の最初の文字を大文字にする

与えられた文字列の最初の文字を大文字にする最も簡単で簡単なコツは String.substring() メソッドを使用することです。以下の例で説明しましょう。

import java.util.*;

public class Main {
  public static void main(String[] args) {
    String str = "java";
    String firstLtr = str.substring(0, 1);
    String restLtrs = str.substring(1, str.length());

    firstLtr = firstLtr.toUpperCase();
    str = firstLtr + restLtrs;
    System.out.println("The modified string is: " + str);
  }
}

出力:

The modified string is: Java

上の例では、一つの文字列変数 str を作成しました。ここで、firstLtr は文字列の最初の文字を、restLtrs は文字列の残りの文字を表します。最後に、firstLtrtoUpperCase() メソッドを用いて大文字に変換し、2つの部分文字列を結合して string を形成します。

文字列の最初の文字を大文字にするには String.substring() メソッドを用いる関数 capitalize() を用いる

この最後の例では、関数 capitalize() を使用して String.substring() メソッドを使用する前に、与えられた string が少なくとも 1 文字を持つことを確認します。

import java.util.*;

public class Main {
  public static String capitalize(String str) {
    if (str == null || str.isEmpty()) {
      return str;
    }
    return str.substring(0, 1).toUpperCase() + str.substring(1);
  }

  public static void main(String[] args) {
    String str = "hello world!";
    String firstLtr = str.substring(0, 1);
    String restLtrs = str.substring(1, str.length());

    firstLtr = firstLtr.toUpperCase();
    str = firstLtr + restLtrs;
    System.out.println("The modified string is: " + str);
  }
}

出力:

The modified string is: Hello world!

関連記事 - Java String