このツールを使えば、初心者でも 桁区切りの正しい書き方と数値の意味を同時に学習できます。
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使い方
- ファイル名を
UnderscoreLearningTool.javaで保存 - コンパイル:
javac UnderscoreLearningTool.java
- 実行:
java UnderscoreLearningTool
- 表示される問題に
_を入れた数値リテラルを入力 - 正しければ計算結果と「正しい書き方です!」が表示
- 間違えれば計算結果またはエラーとともに、正しい書き方の例が表示される
✅ 特徴
- 入力した数値が 正しい桁区切りかチェック
- 入力結果を 数値として計算して確認
- 間違った場合は 正しい例をすぐに表示
- 2進数、16進数、10進数、小数すべて対応


