Integer.parseInt()和這個Integer.valueOf()的詳解【轉】


new Integer.valueof()返回的是Integer的對象。
Integer.parseInt() 返回的是一個int的值。
new Integer.valueof().intValue();返回的也是一個int的值。

 

parseInt

public static int parseInt(String s, int radix) throws NumberFormatException
以第二個參數所指定基數將字符串參數分析為一個帶符號的整數。除了第一個字符可以用 ASCII 的減號  '-' 來表示一個負值外,字符串中的字符必須是指定基數的數(由  Character.digit 是否返回非負值決定)。返回作為結果的整數值。

 

參數:
s - 包含整數的  String 。
radix - 使用的進制
返回值:
指定基數的字符串參數所表示的整數。
拋出:  NumberFormatException
若該串不包含一個可分析的整數。

parseInt

public static int parseInt(String s) throws NumberFormatException
將字符串參數作為帶符號十進制整數來分析。除過第一個字符為 ASCII 字符中減號  '-' 表示的負數,字符串中的字符都必須是十進制數。

 

參數:
s - 串。
返回值:
十進制參數表示的整數。
拋出:  NumberFormatException
若該串不包含一個可分析的整數。

valueOf

public static Integer valueOf(String s, int radix) throws NumberFormatException
返回初始化為指定 String 值的新的 Integer 對象。若該 String 不能作為 int 分析,則拋出異常。

 

參數:
s - 待分析的字符串。
返回值:
新創建的  Integer ,將其以指定基數初始化為字符串參數所表示的值。
拋出:  NumberFormatException
若  String不包含可分析的整數。

valueOf

public static Integer valueOf(String s) throws NumberFormatException
返回初始化為指定 String 值的新的 Integer 對象。若該 String 不能作為 int 分析,則拋出異常。假設基數為 10 。

 

參數:
s - 待分析的字符串。
返回值:
新創建的  Integer ,將其初始化為字符串參數所表示的值。
拋出:  NumberFormatException
如果該串不包含一個可分析的整數。

 

 

static int parseInt(String s)
          將字符串參數作為有符號的十進制整數進行分析。

static Integer valueOf(int i)
          返回一個表示指定的 int 值的 Integer 實例。
static Integer valueOf(String s)
          返回保持指定的 String 的值的 Integer 對象。

從返回值可以看出他們的區別   parseInt()返回的是基本類型int
而valueOf()返回的是包裝類Integer  Integer是可以使用對象方法的  而int類型就不能和Object類型進行互相轉換

int zhuan=Integer.parseInt(chuan);
int zhuanyi=Integer.valueOf(chuan); 為什么你的程序返回值都可以用int來接收呢?  因為Integer和int可以自動轉換
Integer i = 5;   int k  = i;像是這樣表示是沒有編譯錯誤的

 


例題:

設有下面兩個賦值語句:
a = Integer.parseInt(“123”);
b = Integer.valueOf(“123”).intValue();
下述說法正確的是(  d  )。
A、a是整數類型變量,b是整數類對象。
B、a是整數類對象,b是整數類型變量。
C、a和b都是整數類對象並且值相等。 
D、a和b都是整數類型變量並且值相等。

詳細解析:
parseInt(String s )方法是類Integer的靜態方法,它的作用就是將形參 s 轉化為整數,比如:
Interger.parseInt("1")=1;
Integer.parseInt("20")=20;
Integer.parseInt("324")=324;
當然,s 表示的整數必須合法,不然是會拋異常的。
valueOf(String s )也是Integer類的靜態方法,它的作用是將形參 s 轉化為Integer對象,
什么是Integer對象,Integer就是基本數據類型int型包裝類,就是將int包裝成一個類,這樣在很多場合下是必須的。如果理解不了,你就認為int是Integer的mini版,好用了很多,但也丟失了一些功能,好了,看代碼:
Interger.valueOf("123")=Integer(123)
這時候Integer(123)就是整數123的對象表示形式,它再調用intValue()方法,就是將123的對象表示形式轉化為基本數據123
所以,選擇D


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM