文字と文字列

目次
  • 解説
  • 1. 文字とは
  • 2. 文字と文字列
  • 3. 文字型:char型
  • 4. 文字列型:String型
  • 5. このページで学習した型
問題に挑戦!
進捗を変更する




解説

1. 文字とは


普段、スマートフォンやパソコンなどで何気なく文字の種類を使い分けていると思いますが、下表のようにたくさんの種類があり、プログラムを書く上では正しく区別できる必要があります。

文字の種類文字の例
全角ひらがなあかさたなはまやらわ
全角カタカナアカサタナハマヤラワ
半角カタカナアカサタナハマヤラワ
全角漢字安加左太奈波末也良和
全角数字1234567890
半角数字1234567890
全角英字ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
半角英字ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
全角記号!”#$%&’()ー^¥@「」;:,./¥=~|`{}+*<>?_
半角記号!"#$%&'()-^\@[];:,./\=~|`{}+*<>?_
全角スペース「 」
半角スペース「 」

2. 文字と文字列


文字が複数連なった状態を文字列と呼びます。プログラム上で文字列のデータを扱う場合には、前後をダブルクォーテーション")で括ります。

文字列表し方
文字0個(長さ0)の文字列""
文字1個(長さ1)の文字列"あ"
文字10個(長さ10)の文字列"あれは100%猫だ!"

文字列ではなく文字そのものとして扱う場合には、前後をシングルクォーテーション')で括ります。

文字表し方
全角ひらがな'あ'
全角数字'1'
半角数字'1'

ただし、文字そのものを扱うことは稀であるため、明確な目的がない場合には文字列(文字1個でも通常は文字列)として扱いましょう。

Javaプログラムとして使用できるのは、半角英数字と一部の記号のみであり、全角文字や半角カタカナなどは文字や文字列の中以外では使用できません。特に全角半角の区別がつきにくい文字もありますので、十分注意しましょう。

3. 文字型:char型


変数に「文字」を代入して使う場合には、変数を「char」型として宣言します。
値はシングルクォーテーション')で括ります。

特に断りが無い場合、学習用クラスの中にサンプルコードのメソッドを作成(もしくは変更)し、mainメソッドにその呼出部分を書いて実行してください。今回の場合は次のサンプルコードを「Types.java」ファイルの「Types」クラスに追記し、「practiceChar();」をmainメソッド内に書き、「F5」ボタンで実行する、ということになります。わからない場合は「型と変数について学ぶ前に」をもう一度よく読んでみましょう!

    static void practiceChar() {
        char charValue = 'あ';
        Logger.out(charValue);
    }

「char」は 英単語の「Character(キャラクター=文字)」の略称であるため、チャー型キャラクター型文字型と呼びます。

char型は内部的に文字コードという文字に付けられた番号で管理しています。この番号と文字の対応表=文字コード表を世界的に共有していることで、「97番目の文字は'a'という形を表示する」という単純な共通ルールで文字を表現できるようになっているのです。

次のサンプルコードのように、char型には直接文字コードを代入することができます。

    static void practiceChar() {
        char charValue = 'あ'; // 「あ」を文字で代入
        Logger.out(charValue);
        charValue = 97;        // 「a」を文字コードで代入
        Logger.out(charValue);
        charValue = 98;        // 「b」を文字コードで代入
        Logger.out(charValue);
        charValue = 12356;     // 「い」を文字コードで代入
        Logger.out(charValue);
        charValue = 0x3042;    // 「あ」を16進数形式で代入
        Logger.out(charValue);
        charValue = '\u3042';  // 「あ」をUnicodeコードポイントで代入
        Logger.out(charValue);
    }

実行すると「」「a」「b」「」「」「」が順に出力されます。前項の通り、このような特殊な処理を行う目的以外では、次項のString型を使用しましょう。

4. 文字列型:String型


変数に「文字列」を代入して使う場合には、変数を「String」型として宣言します。
値はダブルクォーテーション")で括ります。

    static void practiceString() {
        String stringValue = "あいうえお";
        Logger.out(stringValue);
    }

「String」はそのまま英単語の「String(ストリング=文字列)」であるため、ストリング型文字列型と呼びます。

このクラスですが、「java.lang」パッケージに含まれるためimport文は不要です。

また、クラス型であるため、次のサンプルコードのようなStringクラスの持つメソッドの使用や、「+」による結合などが可能です。

    static void practiceString() {
        String stringValue = "あいうえお";
        Logger.out(stringValue);
        stringValue = stringValue + "abcde"; // 結合
        Logger.out(stringValue);
        Logger.out(stringValue.length()); // 文字列の文字数
        Logger.out(stringValue.toUpperCase()); // 半角英小文字を大文字化
        Logger.out(stringValue.replace("うえお", "ウエオ")); // 置換
    }
[2020/12/31 12:34:56.789] あいうえお
[2020/12/31 12:34:56.789] あいうえおabcde
[2020/12/31 12:34:56.789] 10
[2020/12/31 12:34:56.789] あいうえおABCDE
[2020/12/31 12:34:56.789] あいウエオabcde

5. このページで学習した型


読み方
呼び方
分類データ
データ
範囲
charチャー型・
キャラクター型・
文字型
基本型'あ'
12354
0x3042
0 ~ 65,535
※Unicodeという形式で
 \u0000 ~ \uFFFF
Stringストリング型・
文字列型
参照型
(クラス型)
"あいうえお"
"あ"
""
0 ~ 2,147,483,647 文字
※実際にはメモリーが
 先に限界を迎える

問題

確認問題


確認問題1

この中で文字列の表記として正しくないものはどれか?

確認問題2

この中で文字の使い方として正しいものはどれか?