每天一道Java题[4]

问题

怎么将字符串转换为int

   

解答

此题看似简单,但经常出现在笔试等地方,由于大家习惯了用IDE,有什么还真未必能写出来。通常都是parseInt()方法进行转换,如下:

Int n = Integer.parseInt("123");

   

发散思考

1.除了parseInt()方法外,还有什么其它方法可以让String转换为int吗?float、double、long、short那些又是怎么从String转换的?

解答:除了parseInt()方法以外,还可以用valueOf()方法。如下皆可:

 

int i2 = Integer.valueOf(intString);
int i3 = Integer.valueOf(intString).intValue();

 

对于float、double、long、short等,都有对应的parse方法,和valueOf()可用。

   

2.parseInt()和valueOf()有什么不一样?

解答:看IntegerAPI文档,可以知道:

从文档中可以看出,parseInt()返回int型,而valueOf()返回Integer。当valueOf()返回的值直接付给int的时候,JRE会自动处理转换,也可以指明用Integer.intValue()方法来转化。故第一题上两条语句都行。

   

3.包装类怎么转换基本类?

解答:此处就用到第二题提到的intValue()方法了。如

Long转换intLong l = 10L; int I = l.intValue();

其他的转化同理。

   

参考代码:

 

package me.huangzijian;

public class ConvertExample {

    public static void main(String[] args) {
        String intString = "123";
        int i1 = Integer.parseInt(intString);
        int i2 = Integer.valueOf(intString);
        int i3 = Integer.valueOf(intString).intValue();
        Long l = 123L;
        int i4 = l.intValue();
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    }
}

 

 

 

   

posted @ 2017-05-16 22:49  小小Prince  阅读(540)  评论(0编辑  收藏  举报