欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Integer.valueOf,parsetInt() String.valueOf的區(qū)別和結果代碼解析

 更新時間:2018年05月22日 08:49:41   作者:quyf  
本文通過代碼給大家講解了JAVA中Integer.valueOf, parsetInt() String.valueOf的區(qū)別和結果,需要的朋友可以參考下

先來看段代碼

public class IntegerDemo {
  public static void main(String[] args) {
    String num = null;
    System.out.println( Integer.parseInt(num));// Exception java.lang.NumberFormatException
    System.out.println( Integer.valueOf(num));// Exception java.lang.NumberFormatException
    System.out.println( String.valueOf(num)); //輸出null
    num = "";
    System.out.println( Integer.parseInt(num)); // Exception java.lang.NumberFormatException
    System.out.println( Integer.valueOf(num)); // Exception java.lang.NumberFormatException
    System.out.println( String.valueOf(num));//空串,啥也不輸出
  }
}

先看一下 String.valueOf() 里面是怎么寫的

String.valueOf() 在遇到 null 和 空串的情況下 ,都能正常輸出,所以不拋錯

再來看下 包裝類型 Integer里面又是如何處理的

這兩個方法里面都需要先 parseInt( s,10),就是將字符串s先轉成  十進制的 int基本類型,,但是 valueOf()會根據(jù)int范圍從[-127,127]的內部緩存中去?。ㄓ玫皆O計模式中的 享元模式)

一起來看下 parseInt(s, 10),,在方法里面會判斷字符串是否是合法的數(shù)字,會去校驗null, 空串等其他格式,所以會拋錯

 public static int parseInt(String s, int radix)
        throws NumberFormatException
  {
    /*
     * WARNING: This method may be invoked early during VM initialization
     * before IntegerCache is initialized. Care must be taken to not use
     * the valueOf method.
     */
    if (s == null) {
      throw new NumberFormatException("null");
    }
    if (radix < Character.MIN_RADIX) {
      throw new NumberFormatException("radix " + radix +
                      " less than Character.MIN_RADIX");
    }
    if (radix > Character.MAX_RADIX) {
      throw new NumberFormatException("radix " + radix +
                      " greater than Character.MAX_RADIX");
    }
    int result = 0;
    boolean negative = false;
    int i = 0, len = s.length();
    int limit = -Integer.MAX_VALUE;
    int multmin;
    int digit;
    if (len > 0) {
      char firstChar = s.charAt(0);
      if (firstChar < '0') { // Possible leading "+" or "-"
        if (firstChar == '-') {
          negative = true;
          limit = Integer.MIN_VALUE;
        } else if (firstChar != '+')
          throw NumberFormatException.forInputString(s);
        if (len == 1) // Cannot have lone "+" or "-"
          throw NumberFormatException.forInputString(s);
        i++;
      }
      multmin = limit / radix;
      while (i < len) {
        // Accumulating negatively avoids surprises near MAX_VALUE
        digit = Character.digit(s.charAt(i++),radix);
        if (digit < 0) {
          throw NumberFormatException.forInputString(s);
        }
        if (result < multmin) {
          throw NumberFormatException.forInputString(s);
        }
        result *= radix;
        if (result < limit + digit) {
          throw NumberFormatException.forInputString(s);
        }
        result -= digit;
      }
    } else {
      throw NumberFormatException.forInputString(s);
    }
    return negative ? result : -result;
  }

總結

以上所述是小編給大家介紹的Java中Integer.valueOf,parsetInt() String.valueOf的區(qū)別和結果代碼解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Spring如何自定義XML配置擴展

    Spring如何自定義XML配置擴展

    這篇文章主要介紹了Spring如何自定義XML配置擴展,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • javassist使用指南

    javassist使用指南

    這篇文章主要介紹了javassist的使用方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • SpringMVC異常處理的三種方式小結

    SpringMVC異常處理的三種方式小結

    本文主要介紹了SpringMVC異常處理的三種方式小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • Mysql字段和java實體類屬性類型匹配方式

    Mysql字段和java實體類屬性類型匹配方式

    這篇文章主要介紹了Mysql字段和java實體類屬性類型匹配方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java解析xml之dom4j解析xml示例分享

    java解析xml之dom4j解析xml示例分享

    DOM4J具有性能優(yōu)異、功能強大和極端易用使用的特點,只要懂得DOM基本概念,就可以通過dom4j的api文檔來解析xml,dom4j是一套開源的api。實際項目中,往往選擇dom4j來作為解析xml的利器
    2014-01-01
  • Spring?Cloud?整合?nacos實現(xiàn)動態(tài)配置中心的詳細步驟

    Spring?Cloud?整合?nacos實現(xiàn)動態(tài)配置中心的詳細步驟

    這篇文章主要介紹了Spring?Cloud?整合?nacos?實現(xiàn)動態(tài)配置中心,整合步驟是通過添加依賴新建nacos配置,本文分步驟通過實例代碼給大家詳細講解,需要的朋友可以參考下
    2022-10-10
  • SpringMVC中ModelAndView用法小結

    SpringMVC中ModelAndView用法小結

    本文主要介紹了SpringMVC中ModelAndView用法小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • Java字符串查找的方法總結

    Java字符串查找的方法總結

    在給定的字符串中查找字符或字符串是比較常見的操作,字符串查找分為兩種形式:一種是在字符串中獲取匹配字符(串)的索引值,另一種是在字符串中獲取指定索引位置的字符,本文給大家總結了Java字符串查找的方法,需要的朋友可以參考下
    2024-05-05
  • gradle使用maven-publish發(fā)布jar包上傳到私有maven配置

    gradle使用maven-publish發(fā)布jar包上傳到私有maven配置

    這篇文章主要介紹了gradle使用maven-publish發(fā)布jar包上傳到私有maven的配置示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Java基于ServletContextListener實現(xiàn)UDP監(jiān)聽

    Java基于ServletContextListener實現(xiàn)UDP監(jiān)聽

    這篇文章主要介紹了Java基于ServletContextListener實現(xiàn)UDP監(jiān)聽,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12

最新評論