每天一道Java题[4]

时间:2022-06-24 17:24:02

问题

怎么将字符串转换为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()有什么不一样?

解答:看Integer的API文档,可以知道:

每天一道Java题[4]

每天一道Java题[4]

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

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

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

如Long转换int:Long 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);
}
}