
【6日でできるJava入門】文字と文字列
ここでは、Javaにおける「文字(char)」と「文字列(String)」の基本について学びます。文字と文字列はどちらもプログラムで情報を扱う際に非常に重要なデータ型です。Javaでは、1文字と複数文字(文字列)はまったく異なる型で扱われます。ここでは、宣言・代入・演算・連結といった操作の違いやポイント、さらに内部表現についても例を使いながら解説します。

1.文字と文字列の基本
1.1. 文字リテラルと文字列リテラル
種類 | リテラルの書き方 | 例 |
---|---|---|
文字 | 単一引用符(')で囲む | 'A', '1', '中' |
文字列 | 二重引用符(")で囲む | "Java", "123", "こんにちは" |
- 文字リテラルは1文字だけ(例:'K')
- 文字列リテラルは0文字以上の文字の集まり(例:"OK", "あいう")
1.2. 文字・文字列の変数宣言と代入
型 | 宣言例 | 代入例 |
---|---|---|
char | char c; | char c = '日'; |
String | String s; | String s = "こんにちは"; |
例:変数を使って表示するプログラム
ファイル名: lesson05_1.java
public class lesson05_1 {
public static void main(String[] args) {
char grade = '優';
String message = "合格おめでとうございます!";
System.out.println("成績:" + grade);
System.out.println(message);
}
}
実行結果
成績:優
合格おめでとうございます!
2.文字と文字列の演算・連結
2.1. 文字と文字コード
- char型の中身は「文字」だが、内部では数値(文字コード)として管理される。
- 文字同士の加算は「文字コード」の加算
例:char同士の演算と文字コード
ファイル名: lesson05_2.java
public class lesson05_2 {
public static void main(String[] args) {
char c1 = 'B';
char c2 = 67; // 67は'C'の文字コード
System.out.println("c1のコード値:" + (int)c1);
System.out.println("c2の文字:" + c2);
char sum = (char)('A' + 2); // 'A'(65) + 2 = 'C'(67)
System.out.println("sumの文字:" + sum);
}
}
実行結果
c1のコード値:66
c2の文字:C
sumの文字:C
用語 | 説明 | 例 |
---|---|---|
文字コード | 文字に割り振られた番号(int型) | 'A'→65, '中'→20013 |
ASCIIコード | 主に英数字を扱う標準文字コード | 'B'→66 |
2.2. 文字列の加算(連結)
- String型同士の「+」は、数値の加算ではなく連結(つなげる)
- 数値や他の型とも「+」で自動的に文字列連結される。
例:文字列連結と変数を使った出力
ファイル名: lesson05_3.java
public class lesson05_3 {
public static void main(String[] args) {
String lastName = "佐藤";
String firstName = "太郎";
int age = 18;
String info = lastName + " " + firstName + "さんは" + age + "歳です。";
System.out.println(info);
// さらに連結を重ねる
String result = info + "よろしくお願いします!";
System.out.println(result);
}
}
実行結果
佐藤 太郎さんは18歳です。
佐藤 太郎さんは18歳です。よろしくお願いします!
2.3. 文字と文字列の違い・まとめ
項目 | char(文字) | String(文字列) |
---|---|---|
型 | 基本データ型 | 参照型(クラス型) |
リテラル | 'A' | "A" |
1文字か | 必ず1文字 | 0文字以上(何文字でもOK) |
演算 | 文字コード同士の加算 | 「+」は連結のみ |
まとめ
このように、Javaではchar型(文字)とString型(文字列)は役割や使い方が異なります。それぞれの特徴を正しく理解し、状況に応じて使い分けましょう。