Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Javaには、さまざまなデータ型が用意されており、データ型ごとに扱うデータの種類(数字・文字)や範囲などが異なります。

この記事では、そんな中でも「char型」について解説します!

char型の特徴や使い方がわかる内容になっているので、ぜひ参考にしてください。

char型とは

char型は、1文字を扱うデータ型です。

日本語の「あ」や「い」といった1文字ですね。

ただし、Javaの文字コードはUnicodeなため、データは文字としてではなく文字コードを格納しています。

「あ」であれば「0x3042」といった風に、それぞれの文字に0~65535までの一意の番号が割り当てられているのです。

charの使い方

char型の使い方はとても簡単です。

次のように記述します。

char 変数名 = '任意の1文字';

charのデータ型を記述し、変数名を設定します。

そして、格納したい1文字を記述すればOKです。

例えば、次のように記述すれば「あ」を出力できます。

■記述例
public class Main{
  public static void main(String[] args){
    char c = 'あ';
    System.out.println(c);
  }
}
■実行結果
mbp:Desktop potepan$ java Main
あ

また、任意の1文字の部分はUnicodeで記述しても、同じ結果を取得できます。

■記述例
public class Main{
  public static void main(String[] args){
    char c = 0x3042;
    System.out.println(c);
  }
}

■実行結果
mbp:Desktop potepan$ java Main
あ

このように、char型は任意の1文字を格納できるデータ型です。

char型とString型の違いは?

char型と同じように文字を扱うデータ型に「String型」があります。

よく使われる型なので、知っている人が多いのではないでしょうか。

ここでは、char型とString型の違いについて見ていきましょう。

 

char型とString型の大きな違いは、扱える文字の範囲(文字数)です。

String型は、複数の文字列を表すクラスです。

char型の変数が「基本データ型変数」と呼ばれるのに対し、String型は「クラス型変数」と呼ばれます。

次のように、char型・String型ともに、任意の1文字を格納可能です。

また、String型で文字列を表す際は「“”(ダブルクォーテーション)」を使います。

■記述例
public class Main{
  public static void main(String[] args){
    char c = 'あ';
    String s = "あ";
    System.out.println(c);
    System.out.println(s);
  }
}
■実行結果
mbp:Desktop potepan$ java Main
あ
あ

どちらも同じく「あ」を出力できました。

String型は文字列として、文字を複数格納できます。

■記述例
public class Main{
  public static void main(String[] args){
    String s = "ポテパンスタイル";
    System.out.println(s);
  }
}

■実行結果
mbp:Desktop potepan$ java Main
ポテパンスタイル

このように、文字列を出力できました。

char型で同じような処理を行うと、エラーが発生します。

■記述例
public class Main{
  public static void main(String[] args){
    char c = 'ポテパンスタイル';
    System.out.println(c);
  }
}

■実行結果
mbp:Desktop potepan$ javac Main.java
Main.java:3: エラー: 文字リテラルが閉じられていません
char c = 'ポテパンスタイル';
^
Main.java:3: エラー: 文字リテラルが閉じられていません
char c = 'ポテパンスタイル';
^
Main.java:3: エラー: 文ではありません
char c = 'ポテパンスタイル';
^
エラー3個

なお、JavaのString型については、以下の記事で詳しく解説しています!

より詳しく知りたい場合は、ぜひ参考にしてみてくださいね。

【関連記事】

▶︎Javaの文字列操作を理解しよう!Stringクラスの基本的な使い方を解説!

ポテパンダの一言メモ

・char型は、1文字を扱うデータ型のこと
・String型は、複数の文字列を表すクラス
・それぞれ、扱える文字数が異なります!

char型とString型の変換について

char型で定義した変数を、String型に変換して使いたいです。できますか?

はい、可能です!char型とString型の変換について、ここでは見ていきましょう!

String型をchar型に変換

まずは、String型をchar型に変換する方法を紹介します。

変換するには、Stringクラスのメソッドの「toCharArray()」メソッドを使いましょう。

toCharArray()メソッドは、文字の文字列配列を変換するメソッドです。

次のように記述して使います。

■記述例
public class Main{
  public static void main(String[] args){
    String str = "ポテパンスタイル";
    char[] c = str.toCharArray();
    for (int i = 0; i < c.length; i++) {
      System.out.print(c[i]);
    }
  }
}

char型の配列を使って、toCharArray()メソッドで変換した文字を1文字ずつ格納します。

と言った具合に、1文字ずつ入っているのです。

ここでは、この格納した文字列をfor文を使って1文字ずつ表示させています。

実行結果は次の通りです。

■実行結果
mbp:Desktop potepan$ java Main
ポテパンスタイル

これで、String型をchar型に変換した上で表示できました。

ポテパンダの一言メモ

String型をchar型に変換するには、toCharArray()メソッドを使う!

char型をString型に変換

char型をString型に変換するには、「ValueOf()」メソッドを使いましょう。

ValueOf()メソッドは、さまざまな型を、String型に変換できるメソッドです。

例えば、次のように記述できます。

■記述例
public class Main{
  public static void main(String[] args){
    char c = 'あ';
    String s = String.valueOf(c);
    System.out.println(s);
  }
}
■実行結果
mbp:Desktop potepan$ java Main
あ

変換したいchar型の変数を、引数に指定するだけでOKです。

 

char型の配列をString型に変換する場合は、次のようにStringクラスのオブジェクトを生成しましょう。

■記述例
public class Main{
  public static void main(String[] args){
    char[] c = new char[] { 'ポ', 'テ', 'パ', 'ン' };
    String s = new String(c);
    System.out.println(s);
  }
}
■実行結果
mbp:Desktop potepan$ java Main
ポテパン

このように、char型の文字をString型の文字列に変換できました!

ポテパンダの一言メモ

char型をString型に変換するには、ValueOf()メソッドを使う!

char型の配列をString型に変換する場合は、Stringクラスのオブジェクトを生成する!

char型をint型に変換する

「char型をint型に変換できるの?」と思う人もいるでしょう。

char型はint型に変換可能です!逆も同じくできます。

char型からint型に変換するには、そのままint型の変数に代入すればOKです。

int型の方が扱えるデータの範囲が大きいため、そのまま代入しても問題ありません。

一方、int型からchar型に変換するには、int型の変数の前に「(char)」と記述してキャストします。

それぞれの記述例・実行結果を見ると、次のようになります。

■記述例
public class Main{
  public static void main(String[] args){
    char c1, c2;
    int i;
    c1 = 'あ';

    // char型をint型に変換する
    i = c1;
    System.out.println(i);

    // int型をchar型に変換する
    c2 = (char)i;
    System.out.println(c2);
  }
}
■実行結果
mbp:Desktop potepan$ java Main
12354
あ

「あ」という文字をint型に変換し、「12354」という整数値を出力できています。

また、int型からchar型に変換し、元の「あ」という文字も出力できていますね。

このように、キャストすることで相互に変換可能です!

 

ポテパンダの一言メモ

char型をint型に変換するには、そのまま代入しよう!

int型をchar型に変換するには、(char)でキャストしよう!

char型をarrayで配列にする

ここまでの説明で何回か出てきていますが、char型は配列(Array)で使うことも可能です。

記述方法は次のようになります。

char 変数名[] = { '文字', '文字', '文字', … };

上記の記述で、char型配列の宣言と初期化を同時に行えます。

■記述例
public class Main{
  public static void main(String[] args){
    char[] c = {'ポ', 'テ', 'パ', 'ン'};

    System.out.println(c[0]);
    System.out.println(c[3]);

    for (int i = 0; i < c.length; i++) {
      System.out.print(c[i]);
    }
  }
}
■実行結果
mbp:Desktop potepan$ java Main
ポ
ン
ポテパン

char型を比較する

char型は1文字を表すデータ型です。

そのため、文字の比較をする際は「==」で比較可能です。

例えば、次のように記述できます。

■記述例
public class Main{
  public static void main(String[] args){
    char c1 = 'あ';
    char c2 = 'い';

    if (c1 == 'あ') {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }

    if (c1 == 'い') {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }

    if (c1 == 12354) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }

    if (c1 == c2) {
      System.out.println("Yes");
    } else {
      System.out.println("No");
    }
  }
}
■実行結果
mbp:Desktop potepan$ java Main
Yes
No
Yes
No

それぞれ期待した結果が取得できていますね!

まとめ

Javaのchar型について、特徴や使い方を解説しました。

1文字を扱うデータ型で、String型やint型への変換もできます。

特に、データ型の変換は様々な場面で使うことになるので、ぜひこの記事を参考にやり方を覚えてくださいね!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。