Javaをはじめよう 文字を数字に変換して出力する

本日の課題

a=1,b=2,~,z=26
「a」と入力したら、「1」を出力
「b」と入力したら、「2」を出力
「z」と入力したら、「26」を出力

ソースコード

package scbiz;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print(“文字を1文字入力してください: “);
char input = sc.next().charAt(0);
int num = input – ‘a’ + 1 ;
System.out.println(num);
}
}

結果

入力:a 出力:1
入力:b 出力:2
入力:c 出力:26

解説

変数aに格納された文字がアルファベットの小文字であることが前提とされています。
これを元に、その文字がアルファベット順序で何番目の文字かを計算しています。

‘a’ は、アルファベットの最初の文字 ‘a’ の文字コードです。
アルファベットの順序を調べるために、input からの距離を計算するために使用されます。
input – ‘a’ は、変数inputに格納された文字が ‘a’ から何文字離れているかを示します。
例えば、もし変数inputに ‘c’ が格納されていれば、’c’ – ‘a’ は 2 になります。
この結果に 1 を加えることで、アルファベット順序を得ることができます。
つまり、’a’ が 1、’b’ が 2、’c’ が 3、…となります。

目次に戻る

スポンサーリンク

コメント

タイトルとURLをコピーしました