首页 > 其他 > 详细

int 与 Integer 的转换、NumberFormatException

时间:2020-04-22 01:31:06      阅读:85      评论:0      收藏:0      [点我收藏+]

【问题三】 int 与 Integer 的转换

int 到 Integer

int a = 3;
Integer A = new Integer(a);
或
Integer A = Integer.valueOf(a);

Integer 到 int

Integer A = new Integer(5);
int a = A.intValue();

Integer.parseInt(String str) 则是将String类型转为int 类型。

int 与 Integer的区别与联系

  1. int类型是放在栈空间的,Integer是作为对象放在堆空间的;

  2. int 是基本类型,不是类,为了符合面向对象编程,后来出现了Integer 类,它是对int进行封装的。

  3. int不是对象,是java原始的数据类型,它默认值为0。

  4. Integer是个对象,它有自己的方法,默认值为NULL。

为什么要对基本类型进行对象包装呢?

  • 因为类能提供必要的方法,用于实现基本数据类型的数值与可打印字符串之间的转换,以及一些其他的实用方法。

  • 另外,有些数据结构库类只能操作对象,而不支持基本数据类型的遍历,包装类提供一种便利的方式,能够把基本数据类型转换成等价的对象,从而可以利用数据结构库类进行处理。

总之,无论做了什么都应该不是“白做”,而是有目的的,能够方便我们更好的编码与使用。

【问题四】 String 通过Integer.parseInt 转 int 时, 报错NumberFormatException

问下面的代码的运行结果是什么?会出现异常吗,是运行时期的异常还是编译时期的异常.为什么????

public class A {

  public static void main(String[] args) {
	String s = "";
	int a = Integer.parseInt(s);
	System.out.println(a);
  }
}

结果:会出现异常:

   Exception in thread "main" java.lang.NumberFormatException: For input string: ""

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

编译可以通过,因为s有值,而运行时会出现数字转换异常,空的字符串不能转换为int

数字转换异常,便是空的字符串不知道应该转成什么样的int数。由此,引发的一个注意点,便是,通过Integer.parseInt(),解析字符串时,一定要确保 字符串的实际值 必须是数字,且只能是数字。

【示例】

技术分享图片

【源码分析】 解释为什么 空字符串 会报错

技术分享图片

int 与 Integer 的转换、NumberFormatException

原文:https://www.cnblogs.com/mytJava/p/12749094.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!