You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java读取数值符号程序处理空白输入时抛出NumberFormatException求助

问题解决思路与修正代码

问题根源

  1. 直接对空白/全空格字符串调用Integer.parseInt()会触发NumberFormatException,空字符串无法转换为整数
  2. 原代码逻辑错误:else分支仅在输入为0时触发,并非处理空白输入场景
  3. 需求支持浮点数输入,但代码使用整数转换,不符合要求

修正后的代码

import java.util.Scanner;

public class CheckingSign {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter floating point value: ");
        String input = scanner.nextLine();
        String trimmedInput = input.trim();

        // 优先处理空白输入(含全空格情况)
        if (trimmedInput.isEmpty()) {
            System.out.print("DEBUG:the user input is <   " + input + "  >");
            System.out.println("DEBUG:the trimed input is <" + trimmedInput + ">");
            System.out.println("Encountered blank input.");
            return;
        }

        try {
            // 用Double处理浮点数输入,覆盖整数和小数场景
            double num = Double.parseDouble(trimmedInput);
            System.out.print("DEBUG:the user input is <   " + input + "  >");
            System.out.println("DEBUG:the trimed input is <" + trimmedInput + ">");
            
            if (num > 0) {
                System.out.println("The sign of the input is 1");
            } else if (num < 0) {
                System.out.println("The sign of the input is -1");
            } else {
                System.out.println("The input is zero.");
            }
        } catch (NumberFormatException e) {
            // 捕获非数值的非法输入
            System.out.print("DEBUG:the user input is <   " + input + "  >");
            System.out.println("DEBUG:the trimed input is <" + trimmedInput + ">");
            System.out.println("Invalid input: not a valid floating point number.");
        }
    }
}

关键修改说明

  • 先对输入执行trim(),判断是否为空字符串,优先处理空白输入场景
  • 将整数转换改为Double.parseDouble(),满足浮点数输入需求,同时兼容整数输入
  • 增加try-catch块捕获转换异常,处理非数值的非法输入
  • 调整逻辑分支:空白输入单独处理,数值输入按正负零区分,非法输入给出明确提示

内容的提问来源于stack exchange,提问作者Alex H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:35:20