本文へスキップ
BecomeCoder

Java文法コース · 第7章 文字列と標準ライブラリ ― よく使う道具箱 · レッスン32

Integer.parseInt と Character ― 文字列⇔数値・文字の判定

ブラウザで完結

導入

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 が数字(09)かどうか。
  • 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);(文字列のまま + すると連結になってしまうので注意)。

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。