首頁  >  文章  >  Java  >  Java怎麼將字串String轉換為整數Int

Java怎麼將字串String轉換為整數Int

王林
王林轉載
2023-05-15 14:22:137733瀏覽

用法

在java中常會遇到需要對資料進行類型轉換的場景,String類型的資料轉為Int類型屬於比較常見的場景,主要有兩種轉換方法:

  • 1. 使用Integer.parseInt(String)方法

  • #2. 使用Integer.valueOf(String)方法

具體demo如下:

public void convert() {
    // 1.使用Integer.parseInt(String)
    String str1 = "31";
    Integer num1 = Integer.parseInt(str1);
    System.out.print("字符串31转换为数字:");
    System.out.println(num1);

    // 2.使用Integer.valueOf(String)
    String str2 = "32";
    Integer num2 = Integer.valueOf(str2);
    System.out.print("字符串32转换为数字:");
    System.out.println(num2);
}

執行結果:

Java怎麼將字串String轉換為整數Int

根據執行結果可見,兩種方式都能完成字串到整型的轉換。

注意點

但要注意的是,使用這兩種方法都有一個前提,那就是待轉換字串的內容必須為純數字

不難發現上面demo中的待轉換字串都是"31"、"32"這種由純數字組成的字串,如果待轉字串中出現了除數字以外的其他字符,則程式會拋出異常。

如下demo所示,在字串中加入小寫英文字母,並用try-catch語句包裹程式碼段以捕捉會出現的例外。 (因為我們已經知道,字母的字串轉換為整數會出現數字格式轉換的例外,所以選擇catch NumberFormatException)

public void convert() {
    // 1.Integer.parseInt(String)
    try {
        String str1 = "31a";
        Integer num1 = Integer.parseInt(str1);
        System.out.print("字符串31a转换为数字:");
        System.out.println(num1);
    } catch (NumberFormatException e) {
        System.out.println("Integer.parseInt(String)方法执行异常");
        e.printStackTrace();
    }
 
    // 1.Integer.valueOf(String)
    try {
        String str2 = "32b";
        Integer num2 = Integer.valueOf(str2);
        System.out.print("字符串32b转换为数字:");
        System.out.println(num2);
    } catch (NumberFormatException e) {
        System.out.println("Integer.valueOf(String)方法执行异常");
        e.printStackTrace();
    }
}

從執行結果可見,這段程式碼分別在Integer.parseInt(String )方法和Integer.valueOf(String)位置觸發了NumberFormatException,其原因都是被轉換的字串中存在英文字母,無法轉換成整數

Java怎麼將字串String轉換為整數Int

效能比較

我們可以透過使用System.nanoTime()來查看兩種方法執行的時間差

public static void convert() {
    // 1.Integer.parseInt(String)
    String str1 = "321";
    long before1 = System.nanoTime();
    Integer.parseInt(str1);
    long interval1 = System.nanoTime() - before1;
    System.out.print("Integer.parseInt(String)的执行时长(纳秒):");
    System.out.println(interval1);

    // 1.Integer.valueOf(String)
    String str2 = "332";
    long before2 = System.nanoTime();
    Integer.valueOf(str2);
    long interval2 = System.nanoTime() - before2;
    System.out.print("Integer.valueOf(String)的执行时长(纳秒):");
    System.out.println(interval2);
}

其中,interval1和interval2的值分別指兩個方法的執行前後系統時間之差,單位是納秒,執行多次後均可發現,Integer.valueOf(String)方法的執行時長要小於Integer.parseInt(String)方法,效能更優 

Java怎麼將字串String轉換為整數Int

以上是Java怎麼將字串String轉換為整數Int的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除