Knowledge Log

【Java】文字型(char)と文字列(String)の違いを解説!使い分けのコツとは?

denson
1

はじめに

みなさんどうも、おげんです。

「整数」「小数」と、これまでJavaの「数値」を扱う型についてお話ししてきました。

数値の扱いが分かってくると、次にやりたくなるのが「名前」や「メッセージ」といった「文字」の扱いですよね。

Javaで文字を扱うには、主に charString の2種類があります。

「どっちも文字を扱うなら、どっちを使っても同じじゃないの?」

独学を始めたばかりの頃の私は、正直そう思っていました。

でも、いざコードを書いてみると、シングルクォート( ‘ )とダブルクォート( ” )を使い分けないといけなかったり、エラーが出たり……。

実はここにも、Javaならではの「厳格なルール」が隠されています。

今回は、意外と間違いやすい「文字」と「文字列」の違いについて、実体験を交えながら丁寧に紐解いていこうと思います。

この記事はこんな人におすすめ!
  • charとString、どっちで文字を書けばいいか迷っている人
  • シングルクォート( ‘ )とダブルクォート( ” )の使い分けで混乱している人
  • 「1+1が11になった!?」と、文字列の計算結果に驚いている人
  • String型だけなぜ大文字で始まるのか、その理由が気になっている人
2

char と String の違い

文字を扱う型には、char(文字型)String(文字列型) があります。

当時の私は「どっちも文字だし、全部Stringでいいじゃん!」と思っていました(笑)。

でも、Java君は「一文字なのか、それとも言葉(文章)なのか」を厳格に区別したがる性格なんです。

まずは、この2つの違いをパッと見で確認してみましょう。

「1文字」か「それ以外」か

一番の違いは、そのボリュームです。

char は、アルファベットの「A」や数字の「1」など、たった1文字を扱うための型です。

対して String は、「Hello」や「おげん」のように、複数の文字が繋がったもの(文字列)を扱います。

大文字で始まる String の秘密

表を見て気づいた方もいるかもしれませんが、String だけ始まりが大文字ですよね。

intdouble 、そして char はすべて小文字から始まります。

これらは「基本データ型」といって、Javaが最初から用意しているシンプルな仲間たちです。

それに対して String は、実はJavaが用意した「クラス(設計図)」というちょっと特別な存在なんです。

今は「Stringだけはちょっとエリートで、できることが多いんだな」くらいに思っておけばOKです!

3

【重要】囲い方を間違えると怒られる

Javaで文字を扱うとき、一番気をつけなければいけないのが「囲い方」です。

「どっちでもいいじゃん!」と思いたくなりますが、これを間違えるとJava君は途端に機嫌を損ねて、コンパイルエラーを投げつけてきます。

charはシングル( ‘ )

char を使うときは、必ずシングルクォート( ‘ )で囲みます。

char grade = 'A'; // ✅ 正解
char wrong = "A"; // ❌ エラー!

2行目のようにダブルクォートで囲ってしまうと、Javaは「あ、これはString(文字列)だな」と判断します。それを「char型」という小さな箱に入れようとするので、「型が違うよ!」と怒られてしまうんです。

Stringはダブル( ” )

逆に、String を使うときは必ずダブルクォート( ” )で囲みます。

String name = "おげん"; // ✅ 正解
String initial = 'A'; // ❌ エラー!

たとえ1文字だけであっても、String型として扱うならダブルクォートでなければなりません。

独学時代の私がハマった「空(から)」の罠

さらに細かいのですが、私が「えー!」となったのがこれです。

  • String s = ""; (中身が何もないダブルクォートはOK
  • char c = ''; (中身が何もないシングルクォートはNG!エラー!

char は「絶対に1文字入れなきゃダメ!」という頑固な性格なんです(笑)。

こうした細かい違いに、当時の私は何度も「Java君、厳しすぎない……?」と泣かされました。

4

文字列の「足し算」の不思議

これまでの記事で「数値の計算」をやってきましたが、実は文字列(String)でも +(プラス) を使うことができます。

ただ、数値の時と同じ感覚で使うと、ちょっと不思議なことが起こります。

「1 + 1」が「11」になる!?

例えば、こんなコードを書いてみたとします。

System.out.println("1" + "1");

普通の計算なら答えは「2」ですが、Javaが出す結果は……

11

「えっ、計算ミス!?」と思いますよね(笑)。

でも、これは間違いではありません。Javaにとって、ダブルクォートで囲まれたものはあくまで「文字」です。

文字列同士の + は、足し算ではなく「連結(くっつけること)」を意味します。

「1」という文字と「1」という文字をペタッと繋げた結果、11に見える文字列ができあがった……というわけです。

数値と文字列を混ぜるとどうなる?

さらに面白いのが、数値と文字列を混ぜて足した時です。

System.out.println("私の年齢は" + 20 + "歳です");

この場合、Java君は気を利かせて、数値の「20」を自動的に文字列に変換して繋げてくれます。

私の年齢は20歳です

このように、+ を使うことで、変数に入れた名前や数値を文章の中に組み込むことができます。

これは実際の開発でもめちゃくちゃよく使うテクニックなので、ぜひ覚えておいてくださいね!

5

まとめ:型を使い分けて言葉を操ろう

今回はJavaの「文字(char)」と「文字列(String)」について解説しました。 最後に、大事なポイントを振り返ってみましょう。

  • 1文字だけなら char、言葉や文章なら String を使う
  • char はシングル( ‘ )、String はダブル( ” )で囲むのが鉄則!
  • String だけは大文字スタートの「特別な存在(クラス)」
  • 文字列の + は「足し算」ではなく「連結(くっつける)」という意味になる

これで、Javaのプログラミングで最もよく使う「数値」と「文字」の型をマスターしました!

独学を始めたばかりの頃の私は、「型なんてどれでもいいじゃん」と思っていました。

でも、こうして一つずつ紐解いてみると、Java君がデータの種類を厳格に分けているのは、「プログラムが正しく、安全に動くため」なんだと気づくことができました。

「整数」「小数」「文字」と、基本データ型の三部作はこれで完結です。

基礎を固めていけば、今は難しく見えるコードも、いつか必ず自分の言葉のように読み書きできるようになります。

4月からエンジニアとしての一歩を踏み出す私も、この基礎を忘れずに積み上げていこうと思います。皆さんも、エラーが出ても焦らずに「型」をチェックしてみてくださいね。

次は、プログラムの「分かれ道」を作るための 真偽値(boolean) についてお話ししようかなと考えています。

一緒に頑張りましょう!

あわせて読みたい
【Java】データの種類を決める「型」とは?代表的な4つを分かりやすく解説
【Java】データの種類を決める「型」とは?代表的な4つを分かりやすく解説
【Java】どれを使えばいい?整数型(byte/short/int/long)の違いを徹底解説
【Java】どれを使えばいい?整数型(byte/short/int/long)の違いを徹底解説
【Java】小数型「float」と「double」の違いをいっぽずつ解説
【Java】小数型「float」と「double」の違いをいっぽずつ解説
【Java】真偽値(boolean)とは?プログラミングの「分かれ道」をいっぽずつ理解しよう
【Java】真偽値(boolean)とは?プログラミングの「分かれ道」をいっぽずつ理解しよう
ABOUT ME
おげん
おげん
駆け出しエンジニア
文系未経験からエンジニアになるために挑戦を開始したアラサー。転職活動を終え、2026年4月からIT企業で勤務予定。自分が学習で苦労した経験を『誰かのための道しるべ』として発信中。
記事URLをコピーしました