JavaのtoUpperCase()とtoLowerCase()メソッドの使い方を徹底解説
文字列(String)は、Javaでテキストを格納するために使われる組み込みデータ型です。文字列を扱う際、すべて大文字またはすべて小文字に変換したい場面が出てくることがあります。例えば、2つの名前を比較するアプリを作る場合、比較処理は大文字と小文字を区別するため、名前の大文字・小文字を揃えておく必要があります。
そんなときに役立つのが、JavaのtoUpperCase()メソッドとtoLowerCase()メソッドです。これらの文字列メソッドは、それぞれ文字列をすべて大文字・すべて小文字に変換します。本記事では、具体的なコード例を交えながら、これらのメソッドの使い方と、実際のコードでどのような場面で活用できるのかを詳しく解説します。
Javaにおける文字列の基本
文字列とは、1つ以上の文字が連なったシーケンスであり、英字・数字・空白・記号などを含むことができます。Javaでは、文字の並びをダブルクォーテーションで囲むことで文字列を宣言します。以下はJavaでの文字列の例です。
String fruit = "Strawberry";
Javaでは、文字列はオブジェクトとして扱われます。そのため、文字列の内容を操作するためのさまざまなメソッドが用意されています。toUpperCase()とtoLowerCase()も、Javaに数多く存在する文字列メソッドの一例です。
重要なポイントとして、Javaの文字列は大文字と小文字を区別します。つまり、2つの文字列を比較した場合、内容が完全に一致し、かつ大文字・小文字まで同じである場合にのみ「等しい」と判定されます。
これは、大文字・小文字が異なる可能性のある文字列同士を比較する際に特に注意が必要です。例えば、ユーザーのメールアドレスをすべて小文字で保存している場合(セキュリティ上の理由から一般的な手法です)、ログイン時には入力されたメールアドレスを小文字に変換してから比較するとよいでしょう。そうすることで、両者の値を正確に等価比較できます。
JavaのtoUpperCase()メソッド
toUpperCase()メソッドは、文字列をすべて大文字に変換するために使用します。このメソッドは文字列内の各文字を順番に走査し、それぞれを大文字に置き換えます。
toUpperCase()メソッドの構文は以下の通りです。
string_name.toUpperCase();
toUpperCase()は、大文字に変換したい文字列値の末尾に付けて呼び出します。これは、toUpperCase()が文字列メソッドであり、Javaでは文字列値の末尾に連結して使用するためです。
なお、toUpperCase()は元の文字列を書き換えません。代わりに、元の文字列をすべて大文字にした新しいコピーを生成して返します。
例えば、Java is greatという文字列をすべて大文字に変換したい場合は、次のようにコードを書きます。
String java_is_great = "Java is great"; System.out.println(java_is_great.toUpperCase());
このコードを実行すると、次の出力が得られます。JAVA IS GREAT
それでは、toUpperCase()メソッドの具体的な使用例を見ていきましょう。
ある会員制クラブの来場者リストを出力するアプリケーションを作成するとします。このリストは受付スタッフに渡され、スタッフは顧客が申告した名前とリストを照合して、入場可否を判断します。リスト上の名前は読みやすさのために、すべて大文字で表記したいところです。
そこで、toUpperCase()メソッドを使って、リスト内の各名前を大文字に変換できます。このタスクを実現するサンプルプログラムは以下の通りです。
public class PrintAttendees {
public static void main(String[] args) {
String[] attendees = {"Liam Miller", "Michael Curtis", "Andrew Tamera", "Joan Beverly", "Sarah Klein", "Mary Blackwood"};
for (String i : attendees) {
System.out.println(i.toUpperCase());
}
}
}
このコードの出力結果は以下の通りです。
LIAM MILLER MICHAEL CURTIS ANDREW TAMERA JOAN BEVERLY SARAH KLEIN MARY BLACKWOOD
ご覧の通り、各文字列がすべて大文字に変換されました。ここで、コードの動作を順を追って解説します。まず、PrintAttendeesというクラスを宣言し、この例のコードを格納しています。
次に、クラブのゲストリストに載っている人の名前を保存する、attendeesという文字列配列を初期化します。その次の行では、「拡張forループ」を使ってattendees配列の各要素を順番に取り出しています。
最後に、toUpperCase()を使って各名前を大文字に変換し、その結果をコンソールに出力しています。
JavaのtoLowerCase()メソッド
toLowerCase()メソッドは、toUpperCase()メソッドとは逆の働きをするメソッドです。文字列をすべて大文字に変換するのではなく、すべて小文字に変換します。
toLowerCase()メソッドの構文は以下の通りです。
string_name.toLowerCase();
toLowerCase()も文字列メソッドなので、文字列値の末尾に付けて呼び出します。
例えば、「プロフィール更新」フォームを作成しており、ユーザーがメールアドレスを更新する前に、送信された新しいメールアドレスが旧アドレスと同じでないかを確認したいとします。同じ場合は、別のメールアドレスを選ぶようユーザーに促します。
メールアドレスは大文字・小文字が区別され、システム側ではすべて小文字で保存しているため、比較の前にユーザーが入力したメールアドレスを小文字に変換する必要があります。
このタスクは、以下のコードで実現できます。
public class CompareEmails {
public static void main(String[] args) {
String old_email = "linda.craig@gmail.com";
String new_email = "Linda.craiG@gmail.com".toLowerCase();
if (old_email.equals(new_email)) {
System.out.println("Choose a new email address.");
} else {
System.out.println("Your email address has been changed.");
}
}
}
このコードの出力結果は以下の通りです。
Choose a new email address.
コードの内容を分解してみましょう。まず、CompareEmailsというクラスを定義し、プログラムのコードを記述しています。次に、old_emailという変数を宣言し、ユーザーの旧メールアドレスを格納します。
その次の行では、新しいメールアドレスを格納する変数を宣言しています。ここでtoLowerCase()メソッドを使ってメールアドレスの値を小文字に変換することで、プログラムが2つのメールアドレスを正しく比較できるようにしています。
続いて、if文を使って、新しいメールアドレスが旧アドレスと等しいかどうかを判定します。等しい場合は「Choose a new email address.」というメッセージがコンソールに出力され、そうでない場合は「Your email address has been changed.」が出力されます。
今回のケースでは、ユーザーが入力したメールアドレスには大文字のLが含まれていますが、すべて小文字に変換した後の文字列の内容は旧アドレスと同一です。そのため、プログラムは「Choose a new email address.」をコンソールに出力しました。
まとめ
JavaのtoUpperCase()メソッドは文字列をすべて大文字に変換し、toLowerCase()メソッドは文字列の内容をすべて小文字に変換するために使用します。
本記事では、具体的なコード例を通じて、これらのメソッドをJavaプログラムで使う方法と、実務で役立つ活用シーンについて解説しました。これであなたも、toUpperCase()とtoLowerCase()を使いこなして、プロフェッショナルなJava開発者として文字列の大文字・小文字変換を自由自在に行えるようになったはずです!
-
JavaのStringIndexOutOfBoundsExceptionとは?発生原因と対処法をわかりやすく解説
StringIndexOutOfBoundsExceptionとはJavaにおいて、文字列(String)は一連の文字を格納するために使用され、オブジェクトとして扱われます。文字列は、java.langパッケージに含まれるStringクラスによって表現されます。文字列の作成方法は主に2つあります。1つは他のオブジェクトと同様にnewキーワードを使用する方法、もう1つはプリミティブ型のようにリテラルを直接代入する方法です。String stringObject = new String(Hello how are you); String stringLiteral = Welcome to T
-
JavaでArrayList<String>とArrayList<Object>を相互に変換する方法
Javaのジェネリクスでは、ArrayList<String>とArrayList<Object>は互換性がないため、直接代入やキャストを行うとコンパイルエラーになります。しかし、ワイルドカード(?)やコンストラクタを活用することで、両者を相互に変換できます。この記事では、2つの変換方法をサンプルコード付きで解説します。 ワイルドカードとは ジェネリクスの型パラメータ(T)の代わりに「?」を使用すると、「不明な型」を表すことができます。これをワイルドカードと呼びます。ワイルドカードは、以下の場所で使用できます。 メソッドのパラメータの型 フィールドの型 ローカル変数の