1文字からその文字の文字コード(アスキーコード)を取得する #
コンピュータは二進数しか扱えないため、文字データも二進数(つまり整数)として扱われる。 つまり1文字に対して対応する整数が割り当てられており、コンピュータはその数を特定の文字と思い込み処理する。この数の事を文字コードという。 文字1文字から、その文字の文字コードを取得する方法をまとめる。
クラスはここではMain.javaとする
class Main{
public static void main(String args[]){
char c = 'a';
int a = c;
System.out.println(a); // 97
String s = "aaaaa";
a = s //コンパイルエラー
c = s.charAt(0) // sの0文字目をchar型で返す
System.out.println(c); // a
a = c;
System.out.println(a); // 97
}
}
Javaでは1文字のchar型と文字列のString型があるが、 文字コードに変換できるのはchar型のほうであり、String型の変換はできない。 char型のデータをint型の変数に代入するのは可能なのか?という疑問もあるだろうが、 Javaには代入する変数とデータの型が違っていても、片方がもう片方の型に変換が可能であれば代入は行える。 char型の変数はint型、double型などの数値データ型に変換が可能であり、この例ではint型の変数に代入できる。 対してString型はint,doubleなどの数値データ型には変換できないので、変換したい1文字をchar型として取り出してから行う。
Pythonで文字から文字コードを取得するには**ord()**関数を利用する。 ord()関数は1文字を受け取りその文字コードを出力する。入力する文字は半角でも全角でも良い。 2文字以上を入力するとエラーになる。
>>> ord("a")
97
>>> ord("aa")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 2 found
>>>
>>>
>>> ord("あ")
12354
>>>
また、逆の文字コードから対応する文字を出力する関数**chr()**もある。
>>> chr(97)
'a'
>>> chr(98)
'b'
Javascriptで文字から文字コードを取得するには、文字列の関数 charCodeAt() を利用する。 引数には文字コードを取得したい文字列の何文字目かを入力する。
var s = "abc"
console.log(s.charCodeAt(0))
console.log(s.charCodeAt(1))
console.log(s.charCodeAt(2))
実行結果
97
98
99