0Pricing
Java Academy · レッスン

パースとvalueOf

文字列を数値に変換します

「パースとvalueOf」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。

テキストを数値に変換する

ユーザー入力やファイルの内容は、String型のテキストとして受け取ります。計算を行うには、それらの文字列を数値に変換する必要があります。

ラッパークラスには、そのために2種類のメソッド群があります。parseXxxはプリミティブ型を返し、valueOfはラッパーオブジェクトを返します。

parseIntはプリミティブ型を返します

Integer.parseIntは文字列を受け取り、通常のintを返します。これは最も一般的な解析メソッドです。

public class Main {
    public static void main(String[] args) {
        int n = Integer.parseInt("123");
        System.out.println(n + 1);
    }
}

valueOfはラッパーを返します

Integer.valueOfは文字列を受け取り、プリミティブ型ではなくIntegerオブジェクトを返します。コレクションに格納する場合など、ラッパーが直接必要なときに便利です。

public class Main {
    public static void main(String[] args) {
        Integer boxed = Integer.valueOf("456");
        System.out.println(boxed);
    }
}

小数の解析

浮動小数点数を表すテキストにはDouble.parseDoubleを使用します。小数点を含む値だけでなく、科学的記法にも対応しています。

public class Main {
    public static void main(String[] args) {
        double price = Double.parseDouble("19.99");
        System.out.println(price * 2);
    }
}

その他の型の解析

すべての数値ラッパーにはparseメソッドがあります。Long.parseLong、Double.parseDouble、Float.parseFloat、Short.parseShort、Byte.parseByteなどです。

public class Main {
    public static void main(String[] args) {
        long big = Long.parseLong("9000000000");
        System.out.println(big);
    }
}

booleanの解析

Boolean.parseBooleanは、大文字と小文字を区別せずにテキストが「true」と一致する場合にのみtrueを返します。nullを含め、それ以外のすべての文字列ではfalseを返します。

public class Main {
    public static void main(String[] args) {
        System.out.println(Boolean.parseBoolean("true"));
        System.out.println(Boolean.parseBoolean("TRUE"));
        System.out.println(Boolean.parseBoolean("yes"));
    }
}

異なる基数での解析

Integer.parseIntは、radix引数を省略可能な形で受け取ります。2を渡すと2進数として、16を渡すと16進数として読み取ります。

public class Main {
    public static void main(String[] args) {
        int binary = Integer.parseInt("1010", 2);
        int hex = Integer.parseInt("ff", 16);
        System.out.println(binary);
        System.out.println(hex);
    }
}

不正な入力では例外が発生します

文字列が有効な数値でない場合、解析によってNumberFormatExceptionがスローされます。リスクのある解析処理はtry-catchブロックで囲んでください。

public class Main {
    public static void main(String[] args) {
        try {
            int n = Integer.parseInt("hello");
            System.out.println(n);
        } catch (NumberFormatException e) {
            System.out.println("Not a number!");
        }
    }
}

空白に注意してください

解析では、前後にある空白は許容されません。Integer.parseInt(" 5 ")は例外をスローします。

ユーザー入力には、必ず先にtrim()またはstrip()を呼び出してください。

public class Main {
    public static void main(String[] args) {
        String raw = "  42  ";
        int n = Integer.parseInt(raw.trim());
        System.out.println(n);
    }
}

数値をテキストに戻す

逆方向に変換するには、String.valueOfまたはInteger.toStringを使用します。どちらも数値をテキスト形式に変換します。

public class Main {
    public static void main(String[] args) {
        String text = Integer.toString(789);
        String text2 = String.valueOf(3.14);
        System.out.println(text.length());
        System.out.println(text2);
    }
}

parseXxxとvalueOfの違い

次のルールを覚えておきましょう。parseIntはプリミティブ型のintを返し、valueOfはIntegerオブジェクトを返します。プリミティブ型が必要かラッパーが必要かに応じて選択してください。

簡単な確認

解析について学んだことを確認しましょう。

まとめ

文字列と数値を相互に変換する方法について学びました。

  • parseInt、parseDoubleなどはプリミティブ型を返します
  • valueOfはラッパーオブジェクトを返します
  • 不正な入力ではNumberFormatExceptionがスローされるため、trimして例外を捕捉します
  • parseIntはradix引数によって、他の基数も読み取れます
  • テキストに戻すにはtoStringまたはString.valueOfを使用します

よくある質問

「パースとvalueOf」レッスンは無料ですか?

はい。「パースとvalueOf」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。

「パースとvalueOf」で何を学びますか?

文字列を数値に変換します ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「パースとvalueOf」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プリミティブ型とラッパー型
  2. オートボクシングとアンボクシング
  3. パースとvalueOf
  4. オートボクシングの落とし穴
← Java Academyに戻る