Java で文字を大文字/小文字に変換する
-
文字を大文字/小文字に変換する
toUpperCase()
/toLowerCase()
メソッドを使用する - バイナリ演算と 16 進数を使用して文字を大文字/小文字に変換する
-
com.apache.commons
からcapitalize()
/lowerCase
を使用して、文字を大文字と小文字に変換する
このチュートリアルでは、文字を小文字/大文字に変換する方法を紹介します。4つのメソッドがありますので、以下に例を挙げて見ていきます。
文字を大文字/小文字に変換する toUpperCase()
/toLowerCase()
メソッドを使用する
文字 Character
は char
のラッパクラスであり、toUpperCase()
や toLowerCase()
のように文字を操作するためのいくつかのメソッドを提供しています。これらのメソッドはすべての Unicode 文字を扱うことはできませんが、一般的なアルファベットを扱うことはできます。
変数 char
には 2つの char
があり、char1
は小文字、char2
は大文字です。char1
を大文字に変換するには、Character
クラスから toUpperCase()
スタティックメソッドを呼び出し、引数に char1
を渡します。同様に、char2
を小文字に変換するには toLowerCase()
メソッドを呼び出します。
public class CharUpperLowerCase {
public static void main(String[] args) {
char char1, char2;
char1 = 'a';
char2 = 'B';
char char1UpperCase = Character.toUpperCase(char1);
char char2LowerCase = Character.toLowerCase(char2);
System.out.println(char1UpperCase);
System.out.println(char2LowerCase);
}
}
出力:
A
b
バイナリ演算と 16 進数を使用して文字を大文字/小文字に変換する
すべての文字は ASCII 値とバイナリ表現を持っているので、バイナリ演算を行うことができます。ここでは、バイナリ表現が 1011111 である 16 進数の 0x5f
と、バイナリ表現が 0100000 である 0x20
を使用します。
char1
は a
という文字を持ち、その二進数は 01100001 であるので、二進数の AND 演算を表す記号 &
と 0x5f
を追加します。0x5f
の二進数は 1011111 であり、01100001 と 1011111 の間の AND 演算を行うと、大文字の A
の二進数表現である 01000001 が得られます。
char2
には大文字の文字 B
が含まれており、そのバイナリコードは 01000010 です。OR バイナリ演算に等しい|
記号と、0100000 のバイナリ値を持つ 0x20
を追加します。これで 01000010 OR 0100000 が実行され、結果は小文字の b
と同じ 01100010 となります。
文字を保持するために char
型を使用しているので、バイナリ値はキャストなしでその文字を表す文字に変換されることに注意してください。
public class CharUpperLowerCase {
public static void main(String[] args) {
char char1, char2;
char1 = 'a' & 0x5f;
char2 = 'B' | 0x20;
System.out.println(char1);
System.out.println(char2);
}
}
出力:
A
b
com.apache.commons
から capitalize()
/lowerCase
を使用して、文字を大文字と小文字に変換する
この例では、Apache Commons Library に含まれる StringUtils
クラスを使用します。まず、以下の maven 依存関係を用いてプロジェクトにライブラリをインクルードます。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
StringUtils
はその名の通り、文字列を操作するためのユーティリティーメソッドを提供します。ここでは、それぞれに 1 文字を含む 2つの文字列を用意します。StringUtils.capitalize()
を使用し、引数に string1
を渡して大文字に変換します。string2
は大文字の B
です。StringUtils.lowerCase()
を使用し、引数に string2
を渡すことで小文字に変換することができます。
結果は文字列型で得られますが、目的は char
データ型で値を得ることなので、charAt(0)
を使って、両方の文字列の中で唯一の 1 文字を char
として取得します。
import org.apache.commons.lang3.StringUtils;
public class CharUpperLowerCase {
public static void main(String[] args) {
char char1, char2;
String string1 = "a";
String string2 = "B";
String string1UpperCase = StringUtils.capitalize(string1);
String string2LowerCase = StringUtils.lowerCase(string2);
char1 = string1UpperCase.charAt(0);
char2 = string2LowerCase.charAt(0);
System.out.println(char1);
System.out.println(char2);
}
}
出力:
A
b
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn