每天一道Java題「4」

編程語言 Java IDE 技術 科技優家 2017-05-21

問題

怎麼將字符串轉換為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文檔,可以知道:

從文檔中可以看出,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);
    }
}

相關推薦

推薦中...