Java の文字列の大文字・小文字を変換する「toUpperCase()」「toLowerCase()」
新人
「Java で文字列の大文字や小文字を変換する方法はありますか?」
先輩
「Java では、toUpperCase() メソッドと toLowerCase() メソッドを使って、大文字や小文字に変換できるよ。」
新人
「それぞれどんなときに使うんですか?」
先輩
「例えば、ユーザーの入力を統一したいときや、大文字・小文字を無視した比較をするときに使うことが多いよ。」
新人
「なるほど!具体的な使い方を教えてください!」
1. 文字列の大文字・小文字変換とは?(基本的な説明)
Java では、文字列の大文字・小文字を変換するために toUpperCase() メソッドと toLowerCase() メソッドを使います。
文字列変換の基本
toUpperCase()… すべての文字を大文字に変換toLowerCase()… すべての文字を小文字に変換
これらのメソッドを使えば、例えば「Hello World!」を「HELLO WORLD!」や「hello world!」に変換できます。
2. 「toUpperCase()」で文字列を大文字に変換する
toUpperCase() メソッドを使うと、文字列内のすべてのアルファベットを大文字に変換できます。
toUpperCase() の基本的な使い方
public class UpperCaseExample {
public static void main(String[] args) {
String text = "Hello, Java!";
String upperText = text.toUpperCase();
System.out.println("大文字に変換: " + upperText);
}
}
大文字に変換: HELLO, JAVA!
コードの解説
String text = "Hello, Java!";… 元の文字列を用意するtext.toUpperCase();… 文字列のすべてのアルファベットを大文字に変換するSystem.out.println(upperText);… 変換後の文字列を表示する
このように、toUpperCase() メソッドを使えば、簡単にすべてのアルファベットを大文字に変換できます。
3. 「toLowerCase()」で文字列を小文字に変換する
toLowerCase() メソッドを使うと、文字列内のすべてのアルファベットを小文字に変換できます。
toLowerCase() の基本的な使い方
public class LowerCaseExample {
public static void main(String[] args) {
String text = "Hello, Java!";
String lowerText = text.toLowerCase();
System.out.println("小文字に変換: " + lowerText);
}
}
小文字に変換: hello, java!
コードの解説
String text = "Hello, Java!";… 元の文字列を用意するtext.toLowerCase();… 文字列のすべてのアルファベットを小文字に変換するSystem.out.println(lowerText);… 変換後の文字列を表示する
このように、toLowerCase() メソッドを使えば、簡単にすべてのアルファベットを小文字に変換できます。
4. 「toUpperCase()」「toLowerCase()」を組み合わせた活用例
大文字・小文字を変換することで、ユーザーの入力を統一したり、比較しやすくすることができます。
大文字・小文字を無視した比較
例えば、入力された文字列が「java」でも「JAVA」でも同じとみなす場合、すべて小文字に変換して比較できます。
public class CaseInsensitiveComparison {
public static void main(String[] args) {
String input = "Java";
String keyword = "java";
if (input.toLowerCase().equals(keyword.toLowerCase())) {
System.out.println("同じ単語です");
} else {
System.out.println("異なる単語です");
}
}
}
同じ単語です
コードの解説
- 比較する文字列をどちらも
toLowerCase()で小文字に変換する - 変換後に
equals()を使って比較することで、大文字・小文字の違いを無視できる
ユーザー名を統一する
ユーザー名をすべて大文字に統一することで、データの一貫性を保つことができます。
public class NormalizeUsername {
public static void main(String[] args) {
String username = "javaMaster";
String normalizedUsername = username.toUpperCase();
System.out.println("統一されたユーザー名: " + normalizedUsername);
}
}
統一されたユーザー名: JAVAMASTER
コードの解説
- ユーザー名を
toUpperCase()で大文字に統一する - データベースやシステム内で統一されたユーザー名を保存できる
このように、大文字・小文字の変換は、データの統一や比較を簡単にするために役立ちます。
5. 大文字・小文字変換の注意点
大文字・小文字の変換を使う際には、いくつかの注意点があります。
ロケール(言語設定)による影響
大文字・小文字の変換は、言語設定(ロケール)によって異なる結果になることがあります。
import java.util.Locale;
public class LocaleCaseConversion {
public static void main(String[] args) {
String text = "İstanbul"; // トルコ語の特殊な文字
System.out.println("デフォルト: " + text.toLowerCase());
System.out.println("トルコロケール: " + text.toLowerCase(Locale.forLanguageTag("tr")));
}
}
デフォルト: i̇stanbul
トルコロケール: istanbul
コードの解説
- 通常の
toLowerCase()はデフォルトのロケールを使う - トルコ語の特殊な大文字「İ」は、通常のロケールでは「i̇」となり、トルコロケールでは「i」に変換される
このように、特定の言語の文字を扱う場合は、ロケールを指定した方が正確な変換ができます。
元の文字列は変更されない
toUpperCase() や toLowerCase() を使っても、元の文字列は変更されません。
public class ImmutableStringExample {
public static void main(String[] args) {
String text = "Java Programming";
text.toUpperCase();
System.out.println("元の文字列: " + text);
}
}
元の文字列: Java Programming
コードの解説
toUpperCase()を実行しても、元の文字列には影響がない- 変換後の結果を新しい変数に保存しないと、変換結果を使えない
文字列は「イミュータブル(変更不可)」なため、変換結果を利用するには、新しい変数に代入する必要があります。
6. 日本語の大文字・小文字変換の注意点(例:「あいうえお」には影響なし)
英語のアルファベットは toUpperCase() や toLowerCase() で変換できますが、日本語のひらがな・カタカナ・漢字には影響がありません。
日本語の文字変換の例
public class JapaneseCaseExample {
public static void main(String[] args) {
String text = "こんにちは JAVA プログラム!";
System.out.println("大文字に変換: " + text.toUpperCase());
System.out.println("小文字に変換: " + text.toLowerCase());
}
}
大文字に変換: こんにちは JAVA プログラム!
小文字に変換: こんにちは java プログラム!
コードの解説
- 「こんにちは」は変化しない
- 「JAVA」は小文字になり、「プログラム!」はそのまま
つまり、日本語のひらがな・カタカナ・漢字には大文字・小文字の概念がないため、変換の影響を受けません。
7. equalsIgnoreCase() との組み合わせでケースを無視した比較
大文字・小文字を区別せずに文字列を比較するには、equalsIgnoreCase() を使います。
equalsIgnoreCase() の使い方
public class IgnoreCaseExample {
public static void main(String[] args) {
String word1 = "Java";
String word2 = "JAVA";
if (word1.equalsIgnoreCase(word2)) {
System.out.println("同じ単語です");
} else {
System.out.println("異なる単語です");
}
}
}
同じ単語です
コードの解説
equalsIgnoreCase()は大文字・小文字を無視して比較できる- 「Java」と「JAVA」は同じものとして判定される
このように、比較時に大文字・小文字を区別せずに判定したい場合は equalsIgnoreCase() を使うと便利です。
8. 練習問題:「toUpperCase()」「toLowerCase()」を使ったプログラムを作ろう
これまで学んだ内容を活用して、文字列の大文字・小文字を変換するプログラムを作ってみましょう。
練習問題
次の仕様を満たす Java プログラムを作成してください。
- 「Hello Java!」を大文字・小文字の両方に変換して表示する
- 変換後の文字列を
equalsIgnoreCase()を使って比較する
public class CaseConversionPractice {
public static void main(String[] args) {
String original = "Hello Java!";
String upper = original.toUpperCase();
String lower = original.toLowerCase();
System.out.println("元の文字列: " + original);
System.out.println("大文字変換: " + upper);
System.out.println("小文字変換: " + lower);
if (upper.equalsIgnoreCase(lower)) {
System.out.println("大文字・小文字を無視すると同じ文字列です");
} else {
System.out.println("異なる文字列です");
}
}
}
元の文字列: Hello Java!
大文字変換: HELLO JAVA!
小文字変換: hello java!
大文字・小文字を無視すると同じ文字列です
解説
toUpperCase()で大文字に変換toLowerCase()で小文字に変換equalsIgnoreCase()を使って大文字・小文字を無視した比較を行う
このプログラムを実行し、出力結果を確認してみましょう。