Java入門|文字列を大文字・小文字に変換する方法

大文字と小文字を思い通りに変えられると、文字列処理はもっと使いやすくなる

Javaで文字列を扱っていると、英単語や記号を含むデータを見やすく整えたり、入力された内容を比較しやすい形にそろえたりしたくなることがあります。たとえば、ユーザーが入力した文字列を全部大文字にして表示したいときや、大文字と小文字の違いを気にせず扱いたいときです。そんな場面で役立つのが、Stringクラスの toUpperCase() メソッドと toLowerCase() メソッドです。

これらのメソッドを使うと、文字列を大文字に変換したり、小文字に変換したりできます。英字を扱うプログラムではとてもよく使われる基本機能で、入力チェックや検索、比較処理などにもつながる大切な内容です。

ここでは、文字列を大文字・小文字に変換する方法について、しくみから使い方までていねいに見ていきます。さらに、変換した結果がどのように返されるのか、元の文字列はどうなるのか、といった大事なポイントもいっしょに整理していきましょう。

文字列の大文字・小文字変換とは何か

英字を含む文字列には、大文字と小文字があります。

たとえば、次のような違いがあります。

文字列文字の形
HELLOすべて大文字
helloすべて小文字
Hello先頭だけ大文字
JaVa大文字と小文字が混ざっている

このような文字列を見やすく整えたり、比較しやすい形にそろえたりするために使うのが、大文字・小文字の変換です。

Stringクラスには、そのためのメソッドとして次の2つが用意されています。

メソッドはたらき
toUpperCase()文字列を大文字に変換した結果を返す
toLowerCase()文字列を小文字に変換した結果を返す

この2つを使うと、英字を含む文字列を簡単に変換できます。

toUpperCase() メソッドの役割

toUpperCase() メソッドは、文字列の中にある英字を大文字に変換した結果を返すメソッドです。

たとえば、次のようになります。

元の文字列toUpperCase() の結果
helloHELLO
JavaJAVA
OpenAIOPENAI

このメソッドは、全部大文字で表示したいときや、入力内容を大文字にそろえて比較したいときなどに便利です。

toLowerCase() メソッドの役割

toLowerCase() メソッドは、文字列の中にある英字を小文字に変換した結果を返すメソッドです。

たとえば、次のようになります。

元の文字列toLowerCase() の結果
HELLOhello
Javajava
OpenAIopenai

こちらは、文字列を小文字にそろえて扱いたいときによく使います。検索処理や入力の正規化などでもとても便利です。

シンプルなプログラムで動きを見てみよう

ファイル名:Sample2.java

import java.io.*;

class Sample2
{
    public static void main(String[] args) throws IOException
    {
        // キーボード入力の準備をする
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));

        // 入力をうながす
        System.out.println("英単語を入力してください。");

        // 文字列を読み込む
        String str = br.readLine();

        // 大文字と小文字に変換する
        String upper = str.toUpperCase();
        String lower = str.toLowerCase();

        // 結果を表示する
        System.out.println("大文字にすると " + upper + " になります。");
        System.out.println("小文字にすると " + lower + " になります。");
    }
}

このプログラムでは、キーボードから英単語を入力し、それを大文字と小文字に変換して表示しています。

たとえば、入力として Java を入れた場合、実行結果は次のようになります。

英単語を入力してください。
Java
大文字にすると JAVA になります。
小文字にすると java になります。

とても分かりやすい例ですが、toUpperCase() と toLowerCase() の基本的な使い方がしっかり確認できます。

プログラムの流れを整理しよう

このプログラムで行っていることを順番に整理すると、次のようになります。

順番処理内容説明
1BufferedReader を用意するキーボード入力の準備をする
2br.readLine()1行分の文字列を読み込む
3str.toUpperCase()大文字に変換した結果を受け取る
4str.toLowerCase()小文字に変換した結果を受け取る
5System.out.println(...)結果を表示する

この流れを見ると、入力した文字列そのものに対してメソッドを呼び出し、その結果を別の変数に入れていることが分かります。

大文字変換と小文字変換のイメージ

変換のイメージをシンプルにまとめると、次のようになります。

元の文字列大文字変換小文字変換
HelloHELLOhello
JavaJAVAjava
SpringSPRINGspring

このように、同じ元の文字列から、大文字版と小文字版を作り出せます。

ここで大事なのは、変換された新しい文字列が返されるということです。ただ表示の見え方が変わるのではなく、変換後の文字列そのものを受け取れるので、その後の処理にも使えます。

元の文字列は自動では書き換わらない

これはとても大切なポイントです。

Stringクラスの toUpperCase() や toLowerCase() は、元の文字列そのものを直接書き換えるわけではありません。変換後の新しい文字列を返します。

たとえば、次のコードを見てみましょう。

class CheckCase
{
    public static void main(String[] args)
    {
        String str = "Java";

        str.toUpperCase();

        System.out.println(str);
    }
}

このコードでは、表示されるのは Java のままです。なぜなら、toUpperCase() の結果を受け取っていないからです。

変換結果を使いたい場合は、次のように変数に代入する必要があります。

class CheckCase
{
    public static void main(String[] args)
    {
        String str = "Java";

        str = str.toUpperCase();

        System.out.println(str);
    }
}

この場合は、表示結果が JAVA になります。

この性質はStringクラスを使ううえでとても重要です。初心者のうちは、メソッドを呼び出しただけで元の内容が変わるように感じやすいので、しっかり区別しておきたいところです。

なぜ大文字・小文字の変換が必要なのか

大文字・小文字の変換は、見た目を変えるためだけに使うわけではありません。実際には、入力をそろえて扱いやすくするためにとても役立ちます。

たとえば、次のような場面があります。

場面変換が役立つ理由
コードの入力確認abc と ABC を同じように扱いやすくなる
検索処理大文字小文字の違いによる見落としを減らせる
表示の統一画面に整った形で表示できる
データ比較比較前に形をそろえることで判定しやすくなる

たとえば、ユーザーが yes、Yes、YES のどれを入力しても同じ意味として扱いたい場合、先に全部小文字にしてから比較すると処理が書きやすくなります。

比較処理との相性もよい

大文字・小文字変換は、文字列比較と組み合わせるととても便利です。

たとえば、次のような例が考えられます。

class CheckWord
{
    public static void main(String[] args)
    {
        String input = "Java";

        if (input.toLowerCase().equals("java"))
        {
            System.out.println("同じ言葉として判定しました。");
        }
    }
}

この例では、input が Java でも JAVA でも java でも、toLowerCase() を通してから比較することで、同じ文字列として扱えます。

もちろん、equalsIgnoreCase() を使う方法もありますが、文字列を統一した形で扱いたい場面では toUpperCase() や toLowerCase() もよく使われます。

この図は、中央にある元の文字列 Java から、左に大文字化された JAVA、右に小文字化された java が広がる構成になっています。これにより、toUpperCase() と toLowerCase() が、元の文字列に対して別の形の文字列を返すことが視覚的に理解しやすくなります。

特に大切なのは、中央の元の文字列と左右の変換後の文字列が別に描かれている点です。これによって、元の文字列そのものが自動的に書き換わるのではなく、変換後の結果が新しく得られるという感覚がつかみやすくなります。

入力処理に使われているクラスにも注目しよう

今回のプログラムでは、文字列を読み込むために BufferedReader と InputStreamReader を使っています。これらもJavaのクラスライブラリに含まれるクラスです。

クラス名役割
BufferedReader文字列を1行ずつ読み込むために使う
InputStreamReader入力データを文字として扱いやすくする
String読み込んだ文字列を扱う
System画面への出力に使う

このように、Stringクラスのメソッドを使うプログラムの中でも、ほかのクラスライブラリの機能がいっしょに使われています。Javaではこうした既存クラスを組み合わせることで、便利なプログラムを効率よく作れます。

大文字・小文字変換の基本を表で整理しよう

ここまでの内容を、基本事項としてまとめると次のようになります。

項目内容
toUpperCase()文字列を大文字に変換した結果を返す
toLowerCase()文字列を小文字に変換した結果を返す
戻り値の型String
元の文字列自動では変わらない
主な使いどころ表示の統一、比較前の整形、検索処理

この表を頭の中で整理できると、使い分けがしやすくなります。

よくある注意点

大文字・小文字変換を使うときには、次の点に気をつけておくと安心です。

注意点内容
結果を受け取る必要がある変換しただけでは元の変数は変わらない
主に英字に対して意味がある日本語文字列では見た目の変化がないことが多い
戻り値は Stringchar ではなく文字列が返る
比較と組み合わせると便利同じ形にそろえて判定しやすくなる

特に、結果を変数に代入するかどうかはとても重要です。この点をしっかり意識すると、文字列操作が安定して分かるようになります。

実際のプログラムでどう活きるのか

この機能は、見た目以上に実用的です。たとえば、次のような処理の基礎になります。

  • 入力された商品コードを大文字で統一する
  • メールアドレスや検索語句を小文字で扱う
  • 英単語の表記ゆれを吸収する
  • 判定前に文字列の形をそろえる
  • 表示用に見やすい形へ整える

文字列を扱うプログラムでは、大文字小文字の違いが原因で意図しない判定結果になることがあります。そこで、あらかじめ toUpperCase() や toLowerCase() を使って形を整えておくと、プログラムが分かりやすく、扱いやすくなります。

この2つのメソッドはとてもシンプルですが、文字列処理の土台としてかなり重要です。ここでしっかり理解しておくと、この先の比較処理や検索処理、入力チェックでも役立てやすくなります。