スポンサードリンク

【Java】文字データの扱い方

1.文字は「char」型、文字列は「String」型を使う

Javaで文字データを扱う場合、使用する型に注意しなければなりません。

「a」や「う」などの一文字は「char」型を、「abcde」や「あいうえお」などの複数文字列は「String」型を使用します。

char c1 = 'a';
char c2 = 'う';

String str1 = "abcd";
String str2 = "あいうえお";

2.文字データはクォーテーションで囲む

Javaなどのプログラミングでは、文字データはクォーテーションで囲まなければなりません。

文字型の場合はシングルクォーテーションで、文字列の場合はダブルクォーテーションで囲みます。

char c1 = 'a';
char c2 = 'う';

String str1 = "abcd";
String str2 = "あいうえお";

3.文字コード

「a」や「あ」などの文字は、「文字コード」で表現することが可能です。

文字コードとは?
文字コードとは、文字に番号を振って管理するための規則

では、確認のため「Sample09.java」というファイルを作成し、以下のJavaプログラムを入力してください。

public class Sample09{
    public static void main(String args[]){
	//変数「c」に文字コード「\u0061」を代入
	char c = '\u0061';
	//変数「c」を出力
	System.out.println(c);
    }
}

 

そして「javac Sample09.java」でコンパイルし「java Sample09」で実行してください。

Java 文字を文字コードで出力

すると、「a」という文字が出力されます。

【詳細】
Javaは文字コードにUnicodeというものを採用しています。
Unicodeでは「0061」という番号(16進数)が「a」と決められており、Javaではその前に「\u」を付けることを決めています。
そのため「\u0061」は「a」となるのです。

4.文字なのに数値!?

数字どうしの「1 + 3」は4となりますが、文字がある「'1' + 3」は4になりません。

int i = '1' + 4;
System.out.println(i);

この結果は「52」になります。つまり、文字である「'1'」は数字の「49」とみなされていることがわかります。これはなぜでしょうか?

これは、「1」の文字コードが「0031」(16進数)だからです。そして16進数である「0031」を10進数に戻すと「49」となるのです。そのため文字である「'1'」は数値の「49」に変換されるのです。

このように、文字は数値として扱うことも可能で、当然以下のような計算ができます。

int i = 'a' + 3;
System.out.println(i);

この結果は「100」となります(「a」の文字コードは「0061」で、これを10進数にすると「97」となる)。

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント