java string与integer_java-String与Integer的相互转化,区分Integer.getInteger和Integer.valueOf...

一、Integer转String

//方法一:Integer类的静态方法toString()

Integer a = 123;

String str = Integer.toString(a)

//方法二:Integer类的成员方法toString()

Integer a = 123;

String str = a.toString();

//方法三:String类的静态方法valueOf()

Integer a = 123;

String str = String.valueOf(a);

二、String转Integer

String转化为Integer时,一定要对String进行非空判断,防止空指针异常

String str = "123";

if(str!=null){

Integer i = Integer.valueOf(str);

}

详细实现可以查看Integer类的源码。

在应用过程中,Integer类有两个看起来很类似的静态方法,一个是Integer.getInteger(String),另外一个是Integer.valueOf(String)。如果只看方法名称的话,很不容易将这两个方法的功能区分开来。

Java文档中给出说明:

一、Integer.getInteger(String)的功能是根据指定的名称得到系统属性的整数值。第一个参数将被认为是系统属性的名称。系统属性可以通过 System.getProperty(java.lang.String)方法访问得到。属性值字符串将被解释成一个整数,并且以表示这个值的Integer对象形式返回。可能出现的数字格式的详细说明可以在 getProperty 的定义说明里找到。

二、Integer.valueOf(String)的功能是获取给定的字符串所代表的整数。

//Integer.valueOf(String)方法假设String参数表达的是一个数值

//会把该数值String转化成Integer。也就是说,

Integer.valueOf("123")

//得到一个Integer对象,其值是123。

//Integer.getInteger(String)方法假设String参数是一个系统属性数值的名称

//会读取该系统属性,然后把系统属性的值转换成一个数字。

Integer.getInteger("123")

//应该是得到 null(假设没有名为12345的系统属性)。

虽然这两个方法的功能是不一样的,但是从方法的名称上并没有明显的区分开来,常常容易让人混淆。有很多bug就是因为想使用valueOf的功能但是错误的使用了getInteger方法而导致的。

我也在这个过程中出现了这个问题, 记录一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值