文字列リテラルをやさしく理解する(初心者向け)
今回は Java の文字列リテラル を噛み砕いて、たっぷり例題と「実際に動く .java ファイル」をつけて説明します。初めてでもわかるように段階的に進めます。
1. 文字列リテラルって何?
- 文字列リテラル はプログラム中に直接書かれた文字のかたまり(値)です。
- Javaでは ダブルクォーテーション
"で囲む と文字列リテラルになります。
例:"Hello","こんにちは",""(空文字)
2. 基本ルール(覚えておくこと)
- 文字列は
"(ダブルクォート)で囲む。シングルクォート'は 1文字(char)用。String s = "A";← OKchar c = 'A';← OKString s = 'A';← エラーになる
- 空文字(中身がない文字列)は
""と書く。 - 日本語や絵文字も文字列にできる(エンコーディングに注意:通常はUTF-8で問題なし)。
3. よく使う操作と例
出力(画面に表示する)
System.out.println("Hello, Java!");
System.out.println("こんにちは、世界!");
Java変数に入れる(型は String)
String greeting = "おはよう";
System.out.println(greeting);
Java文字列のつなぎ(連結)
+でつなげられます。
String a = "Hello";
String b = "World";
System.out.println(a + " " + b); // Hello World
Java数値や変数と結合するとき
int age = 20;
String msg = "年齢は " + age + " 歳です";
System.out.println(msg); // 年齢は 20 歳です
Java4. エスケープシーケンス(文字列内で特別な記号を使う)
文字列の中で " を使いたい、または改行やタブなど特殊な文字を入れたい場合は バックスラッシュ \ を使います。
\"— ダブルクォートを文字として入れる\\— バックスラッシュを入れる\n— 改行\t— タブ
例:
System.out.println("He said, \"Java is fun!\""); // He said, "Java is fun!"
System.out.println("1行目\n2行目"); // 2行に分かれて表示
System.out.println("フォルダは C:\\Users\\Halu"); // バックスラッシュを表示
Java5. 注意しやすいミス(初心者がよくハマるポイント)
- ダブルクォートの閉じ忘れ → コンパイルエラー
- シングルクォートで文字列を書いてしまう(
'Hello'はエラー) - 文字列と数値の連結で期待と違う挙動になることがある(左から順に評価される)
例:System.out.println(1 + 2 + " apples");→3 applesSystem.out.println("Total: " + 1 + 2);→Total: 12(先に文字列と1が結合されるため)
6. 実践的な例題(解説付き)
例題1(基本)
画面に Hello Java を表示するプログラムを作りなさい。
解答(実行ファイル): Hello1.java
public class Hello1 {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
Java例題2(変数と結合)
名前と年齢を変数で持ち、「<名前>さんは<年齢>歳です」と表示するプログラムを作りなさい。
解答(実行ファイル): PersonInfo.java
public class PersonInfo {
public static void main(String[] args) {
String name = "太郎";
int age = 25;
System.out.println(name + "さんは" + age + "歳です");
}
}
Java例題3(エスケープ)
次の2行を1つの System.out.println で表示しなさい(出力は2行になる)。
Path:
C:\Users\Public
解答(実行ファイル): ShowPath.java
public class ShowPath {
public static void main(String[] args) {
System.out.println("Path:\nC:\\Users\\Public");
}
}
Java例題4(計算と文字列の注意)
次の2つをそれぞれ表示させたときの出力を予想しなさい。
System.out.println(1 + 2 + " apples");
System.out.println("Total: " + 1 + 2);
Java解説:
1 + 2 + " apples"→3 apples(先に数値同士が足される)"Total: " + 1 + 2→Total: 12(左から結合が進み、"Total: 1"に2が連結される)
7. 練習問題(自力でやってみよう) — 解答付き
- 空文字
""を使って、2つの文字列を結合して「HelloWorld」と表示するプログラムを作れ。- ヒント:
"Hello" + "" + "World"
- ヒント:
System.out.println("She said, \"Hi!\"");の出力は?(実行して確認してみよう)String s = ""; if (s.equals("")) System.out.println("空です");の意味は何か説明しよう。- タブ
\tを使い、A,B,Cを横並びに出力するプログラムを作れ。- 例:
A B C(タブで区切る)
- 例:
Stringの長さを調べるにはs.length()を使う。文字列"abc"に対してlength()の値はいくつ?
解答(短縮)
System.out.println("Hello" + "" + "World");→ HelloWorld- 出力:
She said, "Hi!" sが空文字なら「空です」と表示する(equalsは中身比較)System.out.println("A\tB\tC");"abc".length()は3
8. もう少し発展:よく使う String メソッド(覚えておくと便利)
s.length()— 文字数を取得s.equals(t)— 中身が等しいか比較(==は参照比較なので注意)s.substring(i, j)— 部分文字列を取り出すs.indexOf("a")— 指定した文字や文字列の開始位置(-1 は見つからない)s.toUpperCase()/s.toLowerCase()— 大文字・小文字変換
まとめ(パッと見で覚えてほしいこと)
- 文字列は
"で囲む。'は char(1文字)用。 +で連結できるが評価の順序に注意。\n,\",\\などの エスケープ を使えば特殊文字を表現できる。- 変数に入れて扱うと便利(
String型)。
