【Java】charは文字列ではなく文字!サンプルコードを使って解説!
char型は文字型とも呼ばれ、文字を格納することができる変数の型です。
文字を格納する点ではString型と似ていますが、複数の文字を格納できるString型と比べて、
char型は1文字だけを変数として定義することができます。
その為、1文字しか定義しない場合はStringではなくcharを使うことをおすすめします。
今回はchar型の使い方と
⚫︎ 変数として扱う場合
⚫︎ 配列として扱う場合
⚫︎ 文字同士を比較する場合
について解説していきます。
char型とは
char型とは文字の格納に使用されるデータ型となります。
文字というとString型と似ていますが、複数の文字を格納できるString型と比べて、char型は1文字だけを変数として定義する型になります。
また、charデータ型は、Unicode文字セットに従うため、2バイト(16ビット)を使用し、一つ一つの文字を0~65535の番号に割り当てています。
charの書き方
charの構文は下記となります。
1 2 |
char 変数名 = ‘1文字’ char 変数名 = '文字コード'; |
char型の変数に文字を代入する場合は ‘a’ や ‘男’ などのようにシングルクオーテーションで囲んだり文字コードを使って ‘\uxxxx’ のように代入します。
charは、aからZまでの任意の値、およびすべての数値であると考えられます。
例えば、次のコードを見てみましょう。
char変数に一文字、文字コードを使ったUnicode表現、数字の文字のそれぞれを設定したchar変数があります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class main { public static void main(String[] args) { // Aをそのまま代入 char a = 'A'; // 0x0045を指定 char b = 0x0045; // 77を指定 char c = 77; System.out.println(a); System.out.println(b); System.out.println(c); } } |
出力結果
A
E
M
出力は、0x0045や77ではなく、16進数、Unicode表現になります。
あくまでchar型は文字を格納するのが目的のデータ型ですので、
整数を格納する目的で使用するのは薦めません。
char型を使ったサンプルコード
char型を使ったサンプルコードを紹介していきます。
今回は変数と配列の2ケースで解説していきます。
変数として扱う場合
例
1 2 3 4 5 6 7 8 9 10 11 |
public class Main { public static void main(String[] args) { char A = 'A'; char B = 0x0042; char C = 67 System.out.println(A); System.out.println(B); System.out.println(C); } } |
出力結果
A
B
C
配列として扱う場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { char[] charArrayA; charArrayA = new char[2]; charArrayA[0] = 'A'; charArrayA[1] = 'B'; char[] charArrayB; charArrayB = new char[2]; charArrayB[0] = 0x0041; charArrayB[1] = 0x0042; char[] charArrayC = {65, 66}; System.out.println(Arrays.toString(charArrayA)); System.out.println(Arrays.toString(charArrayB)); System.out.println(Arrays.toString(charArrayC)); } } |
出力結果
[A, B]
[A, B]
[A, B]
どちらのケースでも1文字、16進数、Unicode表現で入力すると、
それに対する文字が表示されます。
文字同士を比較する場合
文字同士を比較する場合は、==(比較演算子)を使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Main { public static void main(String[] args) throws Exception { char char1 = 'A'; char char2 = 'B'; if (char1 == char2) { System.out.println("char1とchar2は同じです"); }else { System.out.println("char1とchar2は同じではありません"); } } } |
出力結果
char1とchar2は同じではありません。
今日のポイント
charで文字を格納する
⚫︎ charデータ型は単一の16ビットUnicode文字である
⚫︎ 最小値は ‘\ u0000’(または0)である(マイナスは存在しない)
⚫︎ 最大値は ‘\ uffff’(または65,535を含む)である
⚫︎ charデータ型は、任意の文字を格納するために使用される
⚫︎ ==(比較演算子)で文字同士を比較することができる
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。