Java | 桁区切りの正しい書き方と数値の意味を同時に学習できるツール

Java Java
スポンサーリンク

このツールを使えば、初心者でも 桁区切りの正しい書き方と数値の意味を同時に学習できます。

import java.util.Scanner;

public class UnderscoreLearningTool {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("=== Java 数値リテラル桁区切り 学習支援ツール ===");
        System.out.println("アンダーバー _ を使った数値リテラルを入力して、正しいか確認しましょう。");
        System.out.println("正しい答えも表示されるので、学習に役立ちます。\n");

        // 練習問題
        String[] questions = {
            "Q1: 1000000 を桁区切りを使って書くと?",
            "Q2: 12345678 を桁区切りを使って書くと?",
            "Q3: 2進数 11011010 を 0b から始めて書くと?",
            "Q4: 16進数 ABCD を 0x から始めて書くと?",
            "Q5: 小数 3.14159265 を桁区切りを入れて書くと?"
        };

        String[] correctExamples = {
            "1_000_000",
            "12_345_678",
            "0b1101_1010",
            "0xAB_CD",
            "3.14_15_92_65"
        };

        for (int i = 0; i < questions.length; i++) {
            System.out.println(questions[i]);
            System.out.print("入力: ");
            String userInput = sc.nextLine().trim();

            try {
                // _ を削除して数字として解析
                String sanitized = userInput.replace("_", "");
                if (sanitized.startsWith("0b") || sanitized.startsWith("0B")) {
                    int value = Integer.parseInt(sanitized.substring(2), 2);
                    System.out.println("✅ 計算結果: " + value);
                } else if (sanitized.startsWith("0x") || sanitized.startsWith("0X")) {
                    int value = Integer.parseInt(sanitized.substring(2), 16);
                    System.out.println("✅ 計算結果: " + value);
                } else if (sanitized.contains(".")) {
                    double value = Double.parseDouble(sanitized);
                    System.out.println("✅ 計算結果: " + value);
                } else {
                    long value = Long.parseLong(sanitized);
                    System.out.println("✅ 計算結果: " + value);
                }

                // 正しい例も表示
                if (!userInput.equals(correctExamples[i])) {
                    System.out.println("💡 正しい書き方の例: " + correctExamples[i]);
                } else {
                    System.out.println("🎉 正しい書き方です!");
                }

            } catch (NumberFormatException e) {
                System.out.println("❌ エラー: 数値リテラルの形式が間違っています");
                System.out.println("💡 正しい書き方の例: " + correctExamples[i]);
            }

            System.out.println();
        }

        System.out.println("=== 練習終了 ===");
        System.out.println("注意: 数字の先頭・末尾や小数点直前・直後には _ を入れられません");
        System.out.println("このツールで正しい桁区切りの練習ができます。");

        sc.close();
    }
}
Java

使い方

  1. ファイル名を UnderscoreLearningTool.java で保存
  2. コンパイル:
javac UnderscoreLearningTool.java
  1. 実行:
java UnderscoreLearningTool
  1. 表示される問題に _ を入れた数値リテラルを入力
  2. 正しければ計算結果と「正しい書き方です!」が表示
  3. 間違えれば計算結果またはエラーとともに、正しい書き方の例が表示される

✅ 特徴

  • 入力した数値が 正しい桁区切りかチェック
  • 入力結果を 数値として計算して確認
  • 間違った場合は 正しい例をすぐに表示
  • 2進数、16進数、10進数、小数すべて対応

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました