Javaで文字列内の各単語の最初の文字を大文字にする方法
この記事では、Javaを使って文字列内の各単語の最初の文字を大文字に変換する方法を解説します。文字列(String型)とは、1つ以上の文字が含まれ、ダブルクォート(" ")で囲まれたデータ型のことです。
まずは実行例を見てみましょう。
入力:
入力文字列: java program
出力:
先頭の文字を大文字にした後の文字列: Java program
アルゴリズム
ステップ1 - 処理を開始する
ステップ2 - input_string(入力文字列)、first_letter(先頭の文字)、remaining_letters(残りの文字)の3つの文字列変数を宣言する
ステップ3 - 変数に値を設定する
ステップ4 - substring()で文字列の先頭1文字を切り出し、toUpperCase()メソッドで大文字に変換する。その後、変換した先頭文字と残りの文字列を連結する
ステップ5 - 結果を表示する
ステップ6 - 処理を終了する
例1:mainメソッドにすべての処理を記述する方法
この例では、すべての処理をmainメソッドの中にまとめて記述しています。
public class Capitalize {
public static void main(String[] args) {
String input_string = "java program";
System.out.println("定義された文字列: " + input_string);
String first_letter = input_string.substring(0, 1);
String remaining_letters = input_string.substring(1, input_string.length());
first_letter = first_letter.toUpperCase();
input_string = first_letter + remaining_letters;
System.out.println("先頭の文字を大文字にした後の文字列: " + input_string);
}
}出力結果
定義された文字列: java program
先頭の文字を大文字にした後の文字列: Java program
例2:オブジェクト指向でメソッドに分割する方法
この例では、処理を独立したメソッドとしてカプセル化し、オブジェクト指向プログラミングのスタイルで記述しています。このように分割することで、コードの再利用性が高まります。
public class Capitalize {
public static String capitalizeLetter(String inputString) {
String firstLetter = inputString.substring(0, 1);
String remainingLetters = inputString.substring(1, inputString.length());
firstLetter = firstLetter.toUpperCase();
return firstLetter + remainingLetters;
}
public static void main(String[] args) {
String input_string = "java program";
System.out.println("定義された文字列: " + input_string);
String result = capitalizeLetter(input_string);
System.out.println("先頭の文字を大文字にした後の文字列: " + result);
}
}出力結果
定義された文字列: java program
先頭の文字を大文字にした後の文字列: Java program
コードのポイント解説
- substring(0, 1):インデックス0から1の直前まで、つまり文字列の先頭1文字を取得します。
- substring(1, length()):インデックス1以降の残りの文字列をすべて取得します。
- toUpperCase():取得した文字を大文字に変換します。
応用:すべての単語の先頭を大文字にする方法
これまでの例では文字列全体の先頭1文字だけを大文字にしました。「java program」のように複数の単語を含む文字列で、すべての単語の先頭を大文字にしたい場合は、split()メソッドで文字列を単語ごとに分割して処理します。
public class CapitalizeEachWord {
public static void main(String[] args) {
String input = "java program tutorial";
String[] words = input.split(" ");
StringBuilder sb = new StringBuilder();
for (String word : words) {
if (!word.isEmpty()) {
sb.append(Character.toUpperCase(word.charAt(0)))
.append(word.substring(1))
.append(" ");
}
}
System.out.println("元の文字列: " + input);
System.out.println("変換後の文字列: " + sb.toString().trim());
}
}出力結果
元の文字列: java program tutorial
変換後の文字列: Java Program Tutorial
まとめ
文字列の先頭文字を大文字にするには、substring()で先頭1文字を取り出し、toUpperCase()で大文字に変換してから残りの文字列と連結するのが基本です。複数の単語がある場合は、split()で分割して各単語に同じ処理を適用しましょう。簡単なスクリプトならmainメソッドに直接記述しても問題ありませんが、規模が大きくなる場合は再利用性の高いメソッドに分割するオブジェクト指向のアプローチをおすすめします。
-
【Java入門】文字列から各単語の最初の文字だけを抽出して出力する方法
JavaにおけるStringクラスは、文字列を表すために使用されるクラスです。Javaプログラム内に記述されたすべての文字列リテラルは、Stringクラスのインスタンスとして扱われます。また、Stringオブジェクトは定数であり、一度生成するとその値を後から変更することができません。この性質は「不変(イミュータブル)」と呼ばれます。 文字列の中から各単語の最初の文字だけを取り出して出力したい場合は、以下のようなプログラムで実現できます。 サンプルコード public class FirstCharacterPrintTest { public static void main(Stri
-
Pythonで各単語の先頭文字を大文字に変換するプログラム
英語の小文字だけで構成された文が与えられたとき、各単語の最初の文字だけを大文字に変換する方法を解説します。 たとえば、入力が s = i love my country の場合、出力は I Love My Country となります。 解決の手順 この問題は、以下のステップで解くことができます。 文字列 s を空白で分割し、単語のリストを作成する 結果を格納するための空のリストを用意する 各単語に対して capitalize() 関数を使って先頭文字を大文字化し、リストに追加する リスト内のすべての単語を空白区切りで連結して返す 実装例 実際のコードを見てみましょう。 def solv