数字格式化异常内容的描述

**

  • 执行程序,分析并解决问题
  • NumberFormatException出现的情况通常是由包装类将字符串解析为基本类型时,由于字符串内容不能正确描述基本类型导致该异常.
  • 数字 格式 异常
  • @author Xiloer
  • /
    public class Test04 {
    public static void main(String[] args) {
    /*
     * 原因:
     */
    String num = "123 ";
    int d = Integer.parseInt(num);
    System.out.println(d);
    
    /*
     * 原因:
     */
    num = "123.456";
    d = Integer.parseInt(num);
    System.out.println(num);
    
    /*
     * 原因:
     */
    
    // num = "123";
    // d = Integer.parseInt(num);
    // System.out.println(d);
    }
    }

错误原因:使用 == 比较两个字符串的值,而不是使用 equals 方法。
修改如下:

public class Test03 {
  public static void main(String[] args) {
    String path1 = "/myweb/reg";//处理注册的路径
    String path2 = "/myweb/login";//处理登录的路径
    /*
     * 程序启动后,输入上述两个地址后检查下面输出. 
     * 分析并解决存在的问题,并写出错误原因:
     * 
     * 
     */
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入地址:");
    String path = scanner.nextLine();
    if(path!=null) {
      if(path.equals(path1)) {
        System.out.println("处理注册!");
      }else if(path.equals(path2)) {
        System.out.println("处理登录!");
      }else {
        System.out.println("输入地址有误!");
      }
    }
  }
}


String num = "123 "; 123后面有空格

parseInt方法能将只含数字的字符串转换成数字
但要求传入的实参必须是纯数字形式的字符串,如"123","123456"是可以的,但"12 "是不行的,因为有空格存在;"12h"也是不行的,因为有字母存在

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^