導入
Scannerで読み込んだ値やユーザーの入力は、多くの場合いったん**文字列(String)**として扱われます。これを計算に使うには、数値へ変換する必要があります。文字が数字か英字かを判定する Character も合わせて見ておきましょう。
説明
public class Main {
public static void main(String[] args) {
String input = "123";
int n = Integer.parseInt(input); // 文字列 → int
System.out.println(n + 1);
char c = '7';
System.out.println(Character.isDigit(c)); // 数字か? → true
System.out.println(Character.isLetter(c)); // 英字か? → false
char letter = 'a';
System.out.println(Character.toUpperCase(letter)); // 大文字に → A
}
}
Integer.parseInt(文字列)… 文字列をintに変換します。"123" + 1のように文字列のまま計算しようとすると、+は文字列の連結になってしまう(結果は"1231")ので、必ず変換してから計算します。数字として読めない文字列を渡すと実行時エラーになります。Character.isDigit(c)… そのcharが数字(0〜9)かどうか。Character.isLetter(c)… そのcharが英字(アルファベット)かどうか。Character.toUpperCase(c)/Character.toLowerCase(c)… 1文字を大文字/小文字に変換します。
「文字列で受け取った値を数として計算したい」ときは、必ず Integer.parseInt (小数なら Double.parseDouble)を通す、と覚えておきましょう。
やってみよう
下のエディタで input の中身を別の数字の文字列に変えたり、c を別の文字に変えたりして、結果がどう変わるか確かめましょう。
演習
文字列 "42" と "8" をそれぞれ Integer.parseInt で数値に変換し、その合計を表示してください(結果は 50)。
ヒント1を見る
int a = Integer.parseInt("42"); int b = Integer.parseInt("8");。
ヒント2を見る
System.out.println(a + b);(文字列のまま + すると連結になってしまうので注意)。