JavaTM 2 Platform
Standard Ed. 6

java.lang
類別 Integer

java.lang.Object
  繼承者 java.lang.Number
      繼承者 java.lang.Integer
所有已實作的介面:
Serializable, Comparable<Integer>

public final class Integer
extends Number
implements Comparable<Integer>

Integer 類別在物件中包裹了一個基本型別 int 的值。Integer 型別的物件包含一個 int 型別的欄位。

此外,該類別提供了多個方法,能在 int 型別和 String 型別之間互相轉換,還提供了處理 int 型別時非常有用的其他一些常數和方法。

實作注意事項:“bit twiddling”方法(如 highestOneBitnumberOfTrailingZeros)的實作基於 Henry S. Warren, Jr.撰寫的 Hacker's Delight(Addison Wesley, 2002)中的一些有關材料。

從以下版本開始:
JDK1.0
另請參見:
序列化表格

欄位摘要
static int MAX_VALUE
          值為 231-1 的常數,它表示 int 型別能夠表示的最大值。
static int MIN_VALUE
          值為 -231 的常數,它表示 int 型別能夠表示的最小值。
static int SIZE
          用來以二進制補碼形式表示 int 值的位元位數。
static Class<Integer> TYPE
          表示基本型別 intClass 實例。
 
建構子摘要
Integer(int value)
          建構一個新分派的 Integer 物件,它表示指定的 int 值。
Integer(String s)
          建構一個新分派的 Integer 物件,它表示 String 參數所指示的 int 值。
 
方法摘要
static int bitCount(int i)
          返回指定 int 值的二進制補碼表示形式的 1 位的數量。
 byte byteValue()
          以 byte 型別返回該 Integer 的值。
 int compareTo(Integer anotherInteger)
          在數字上比較兩個 Integer 物件。
static Integer decode(String nm)
          將 String 解碼為 Integer
 double doubleValue()
          以 double 型別返回該 Integer 的值。
 boolean equals(Object obj)
          比較此物件與指定物件。
 float floatValue()
          以 float 型別返回該 Integer 的值。
static Integer getInteger(String nm)
          確定具有指定名稱的系統屬性的整數值。
static Integer getInteger(String nm, int val)
          確定具有指定名稱的系統屬性的整數值。
static Integer getInteger(String nm, Integer val)
          返回具有指定名稱的系統屬性的整數值。
 int hashCode()
          返回此 Integer 的雜湊碼。
static int highestOneBit(int i)
          返回具有至多單個 1 位的 int 值,在指定的 int 值中最高位(最左邊)的 1 位的位置。
 int intValue()
          以 int 型別返回該 Integer 的值。
 long longValue()
          以 long 型別返回該 Integer 的值。
static int lowestOneBit(int i)
          返回具有至多單個 1 位的 int 值,在指定的 int 值中最低位(最右邊)的 1 位的位置。
static int numberOfLeadingZeros(int i)
          在指定 int 值的二進制補碼表示形式中最高位(最左邊)的 1 位之前,返回零位的數量。
static int numberOfTrailingZeros(int i)
          返回指定的 int 值的二進制補碼表示形式中最低(“最右邊”)的為 1 的位後面的零位個數。
static int parseInt(String s)
          將字元串參數作為有符號的十進制整數進行解析。
static int parseInt(String s, int radix)
          使用第二個參數指定的進制,將字元串參數解析為有符號的整數。
static int reverse(int i)
          返回通過反轉指定 int 值的二進制補碼表示形式中位的順序而獲得的值。
static int reverseBytes(int i)
          返回通過反轉指定 int 值的二進制補碼表示形式中位元組的順序而獲得的值。
static int rotateLeft(int i, int distance)
          返回根據指定的位數循環左移指定的 int 值的二進制補碼表示形式而得到的值。
static int rotateRight(int i, int distance)
          返回根據指定的位數循環右移指定的 int 值的二進制補碼表示形式而得到的值。
 short shortValue()
          以 short 型別返回該 Integer 的值。
static int signum(int i)
          返回指定 int 值的符號函數。
static String toBinaryString(int i)
          以二進制(進制 2)無符號整數形式返回一個整數參數的字元串表示形式。
static String toHexString(int i)
          以十六進制(進制 16)無符號整數形式返回一個整數參數的字元串表示形式。
static String toOctalString(int i)
          以八進制(進制 8)無符號整數形式返回一個整數參數的字元串表示形式。
 String toString()
          返回一個表示該 Integer 值的 String 物件。
static String toString(int i)
          返回一個表示指定整數的 String 物件。
static String toString(int i, int radix)
          返回用第二個參數指定進制表示的第一個參數的字元串表示形式。
static Integer valueOf(int i)
          返回一個表示指定的 int 值的 Integer 實例。
static Integer valueOf(String s)
          返回保存指定的 String 的值的 Integer 物件。
static Integer valueOf(String s, int radix)
          返回一個 Integer 物件,該物件中保存了用第二個參數提供的進制進行解析時從指定的 String 中提取的值。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

MIN_VALUE

public static final int MIN_VALUE
值為 -231 的常數,它表示 int 型別能夠表示的最小值。

另請參見:
常數欄位值

MAX_VALUE

public static final int MAX_VALUE
值為 231-1 的常數,它表示 int 型別能夠表示的最大值。

另請參見:
常數欄位值

TYPE

public static final Class<Integer> TYPE
表示基本型別 intClass 實例。

從以下版本開始:
JDK1.1

SIZE

public static final int SIZE
用來以二進制補碼形式表示 int 值的位元位數。

從以下版本開始:
1.5
另請參見:
常數欄位值
建構子詳細資訊

Integer

public Integer(int value)
建構一個新分派的 Integer 物件,它表示指定的 int 值。

參數:
value - Integer 物件表示的值。

Integer

public Integer(String s)
        throws NumberFormatException
建構一個新分派的 Integer 物件,它表示 String 參數所指示的 int 值。使用與 parseInt 方法(對進制為 10 的值)相同的方式將該字元串轉換成 int 值。

參數:
s - 要轉換為 IntegerString
拋出:
NumberFormatException - 如果 String 不包含可解析的整數。
另請參見:
parseInt(java.lang.String, int)
方法詳細資訊

toString

public static String toString(int i,
                              int radix)
返回用第二個參數指定進制表示的第一個參數的字元串表示形式。

如果進制小於 Character.MIN_RADIX 或者大於 Character.MAX_RADIX,則改用進制 10

如果第一個參數為負,則結果中的第一個元素為 ASCII 的減號 '-' ('\u002D')。如果第一個參數為非負,則沒有符號字元出現在結果中。

結果中的剩餘字元表示第一個參數的大小。如果大小為零,則用一個零字元 '0' ('\u0030') 表示;否則,大小的表示形式中的第一個字元將不是零字元。用以下 ASCII 字元作為數字:

   0123456789abcdefghijklmnopqrstuvwxyz
 
其範圍是從 '\u0030''\u0039' 和從 '\u0061''\u007A'。如果 radixN, 則按照所示順序,使用這些字元中的前 N 個作為其數字。因此,十六進制(進制為 16)的數字是 0123456789abcdef。如果希望得到大寫字母,則可以在結果上調用 String.toUpperCase() 方法:
 Integer.toString(n, 16).toUpperCase()
 

參數:
i - 要轉換成字元串的整數。
radix - 用於字元串表示形式的進制。
返回:
使用指定進制的參數的字元串表示形式。
另請參見:
Character.MAX_RADIX, Character.MIN_RADIX

toHexString

public static String toHexString(int i)
以十六進制(進制 16)無符號整數形式返回一個整數參數的字元串表示形式。

如果參數為負,那麼無符號整數值為參數加上 232;否則等於該參數。將該值轉換為十六進制(進制 16)的無前導 0 的 ASCII 數字字元串。如果無符號數的大小值為零,則用一個零字元 '0' (’\u0030’) 表示它;否則,無符號數大小的表示形式中的第一個字元將不是零字元。用以下字元作為十六進制數字:

 0123456789abcdef
 
這些字元的範圍是從 '\u0030''\u0039' 和從 '\u0061''\u0066'。如果希望得到大寫字母,可以在結果上調用 String.toUpperCase() 方法:
 Integer.toHexString(n).toUpperCase()
 

參數:
i - 要轉換成字元串的整數。
返回:
參數的十六進制(進制 16)無符號整數值的字元串表示形式。
從以下版本開始:
JDK1.0.2

toOctalString

public static String toOctalString(int i)
以八進制(進制 8)無符號整數形式返回一個整數參數的字元串表示形式。

如果參數為負,該無符號整數值為參數加上 232;否則等於該參數。該值被轉換成八進制(進制 8)ASCII 數字的字元串,且沒有附加前導 0

如果無符號數大小為零,則用一個零字元 '0' ('\u0030') 表示它;否則,無符號數大小的表示形式中的第一個字元將不是零字元。用以下字元作為八進制數字:

01234567
它們是從 '\u0030''\u0037' 的字元。

參數:
i - 要轉換成字元串的整數。
返回:
用八進制參數(進制 8)表示的無符號整數值的字元串表示形式。
從以下版本開始:
JDK1.0.2

toBinaryString

public static String toBinaryString(int i)
以二進制(進制 2)無符號整數形式返回一個整數參數的字元串表示形式。

如果參數為負,該無符號整數值為參數加上 232;否則等於該參數。將該值轉換為二進制(進制 2)形式的無前導 0 的 ASCII 數字字元串。如果無符號數的大小為零,則用一個零字元 '0' (’\u0030’) 表示它;否則,無符號數大小的表示形式中的第一個字元將不是零字元。字元 '0' ('\u0030') 和 '1' ('\u0031') 被用作二進制數字。

參數:
i - 要轉換為字元串的整數。
返回:
用二進制(進制 2)參數表示的無符號整數值的字元串表示形式。
從以下版本開始:
JDK1.0.2

toString

public static String toString(int i)
返回一個表示指定整數的 String 物件。將該參數轉換為有符號的十進製表示形式,以字元串形式返回它,就好像將參數和進制 10 作為參數賦予 toString(int, int) 方法。

參數:
i - 要轉換的整數。
返回:
十進制(進制 10)參數的字元串表示形式。

parseInt

public static int parseInt(String s,
                           int radix)
                    throws NumberFormatException
使用第二個參數指定的進制,將字元串參數解析為有符號的整數。除了第一個字元可以是用來表示負值的 ASCII 減號 '-' ('\u002D’)外,字元串中的字元必須都是指定進制的數字(通過 Character.digit(char, int) 是否返回一個負值確定)。返回得到的整數值。

如果發生以下任意一種情況,則拋出一個 NumberFormatException 型別的異常:

範例:

parseInt("0", 10) 返回 0
parseInt("473", 10) 返回 473
parseInt("-0", 10) 返回 0
parseInt("-FF", 16) 返回 -255
parseInt("1100110", 2) 返回 102
parseInt("2147483647", 10) 返回 2147483647
parseInt("-2147483648", 10) 返回 -2147483648
parseInt("2147483648", 10) 拋出 NumberFormatException
parseInt("99", 8) 拋出 NumberFormatException
parseInt("Kona", 10) 拋出 NumberFormatException
parseInt("Kona", 27) 返回 411787

參數:
s - 套件含要解析的整數表示形式的 String
radix - 解析 s 時使用的進制。
返回:
使用指定進制的字元串參數表示的整數。
拋出:
NumberFormatException - 如果 String 不包含可解析的 int

parseInt

public static int parseInt(String s)
                    throws NumberFormatException
將字元串參數作為有符號的十進制整數進行解析。除了第一個字元可以是用來表示負值的 ASCII 減號 '-' ('\u002D') 外,字元串中的字元都必須是十進制數字。返回得到的整數值,就好像將該參數和進制 10 作為參數賦予 parseInt(java.lang.String, int) 方法一樣。

參數:
s - 套件含要解析的 int 表示形式的 String
返回:
用十進制參數表示的整數值。
拋出:
NumberFormatException - 如果字元串不包含可解析的整數。

valueOf

public static Integer valueOf(String s,
                              int radix)
                       throws NumberFormatException
返回一個 Integer 物件,該物件中保存了用第二個參數提供的進制進行解析時從指定的 String 中提取的值。將第一個參數解釋為用第二個參數指定的進制表示的有符號整數,就好像將這些參數賦予 parseInt(java.lang.String, int) 方法一樣。結果是一個表示字元串指定的整數值的 Integer 物件。

換句話說,該方法返回一個等於以下值的 Integer 物件:

new Integer(Integer.parseInt(s, radix))

參數:
s - 要解析的字元串。
radix - 解釋 s 時使用的進制。
返回:
一個 Integer 物件,它含有字元串參數(以指定的進制)所表示的數值。
拋出:
NumberFormatException - 如果 String 不包含可解析的 int

valueOf

public static Integer valueOf(String s)
                       throws NumberFormatException
返回保存指定的 String 的值的 Integer 物件。將該參數解釋為表示一個有符號的十進制整數, 就好像將該參數賦予 parseInt(java.lang.String) 方法一樣。結果是一個表示字元串指定的整數值的 Integer 物件。

換句話說,該方法返回一個等於以下值的 Integer 物件:

new Integer(Integer.parseInt(s))

參數:
s - 要解析的字元串。
返回:
保存字元串參數表示的值的 Integer 物件。
拋出:
NumberFormatException - 如果字元串不能解析為一個整數。

valueOf

public static Integer valueOf(int i)
返回一個表示指定的 int 值的 Integer 實例。如果不需要新的 Integer 實例,則通常應優先使用該方法,而不是建構子 Integer(int),因為該方法有可能通過快取記憶體經常請求的值而顯著提高空間和時間性能。

參數:
i - 一個 int 值。
返回:
表示 iInteger 實例。
從以下版本開始:
1.5

byteValue

public byte byteValue()
byte 型別返回該 Integer 的值。

覆寫:
類別 Number 中的 byteValue
返回:
轉換為 byte 型別後該物件表示的數值。

shortValue

public short shortValue()
short 型別返回該 Integer 的值。

覆寫:
類別 Number 中的 shortValue
返回:
轉換為 short 型別後該物件表示的數值。

intValue

public int intValue()
int 型別返回該 Integer 的值。

指定者:
類別 Number 中的 intValue
返回:
轉換為 int 型別後該物件表示的數值。

longValue

public long longValue()
long 型別返回該 Integer 的值。

指定者:
類別 Number 中的 longValue
返回:
轉換為 long 型別後該物件表示的數值。

floatValue

public float floatValue()
float 型別返回該 Integer 的值。

指定者:
類別 Number 中的 floatValue
返回:
轉換為 float 型別後該物件表示的數值。

doubleValue

public double doubleValue()
double 型別返回該 Integer 的值。

指定者:
類別 Number 中的 doubleValue
返回:
轉換為 double 型別後該物件表示的數值。

toString

public String toString()
返回一個表示該 Integer 值的 String 物件。將該參數轉換為有符號的十進製表示形式,並以字元串的形式返回它,就好像將該整數值作為參數賦予 toString(int) 方法一樣。

覆寫:
類別 Object 中的 toString
返回:
該物件的值(進制 10)的字元串表示形式。

hashCode

public int hashCode()
返回此 Integer 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
該物件的雜湊碼值,它的值即為該 Integer 物件表示的基本 int 型別的數值。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
比較此物件與指定物件。當且僅當參數不為 null,並且是一個與該物件包含相同 int 值的 Integer 物件時,結果為 true

覆寫:
類別 Object 中的 equals
參數:
obj - 要比較的物件。
返回:
如果物件相同,則返回 true,否則返回 false
另請參見:
Object.hashCode(), Hashtable

getInteger

public static Integer getInteger(String nm)
確定具有指定名稱的系統屬性的整數值。

第一個參數被視為系統屬性的名稱。通過 System.getProperty(java.lang.String) 方法可以存取系統屬性。然後,將該屬性的字元串值解釋為一個整數值,並返回表示該值的 Integer 物件。使用 getProperty 的定義可以找到可能出現的數字格式的詳細資訊。

如果沒有具有指定名稱的屬性,或者指定名稱為空或 null,或者屬性的數字格式不正確,則返回 null

換句話說,該方法返回一個等於以下值的 Integer 物件:

getInteger(nm, null)

參數:
nm - 屬性名。
返回:
屬性的 Integer 值。
另請參見:
System.getProperty(java.lang.String), System.getProperty(java.lang.String, java.lang.String)

getInteger

public static Integer getInteger(String nm,
                                 int val)
確定具有指定名稱的系統屬性的整數值。

第一個參數被視為系統屬性的名稱。通過 System.getProperty(java.lang.String) 方法可以存取系統屬性。然後,將該屬性的字元串值解釋為一個整數值,並返回表示該值的 Integer 物件。使用 getProperty 的定義可以找到可能出現的數字格式的詳細資訊。

第二個參數是預設值。如果未具有指定名稱的屬性,或者屬性的數字格式不正確,或者指定名稱為空或 null,則返回一個表示第二個參數的值的 Integer 物件。

換句話說,該方法返回一個等於以下值的 Integer 物件:

getInteger(nm, new Integer(val))
但在實踐中可能會用以下類似方式實作它:
 Integer result = getInteger(nm, null);
 return (result == null) ? new Integer(val) : result;
 
從而避免在無需預設值時分派不必要的 Integer 物件。

參數:
nm - 屬性名。
val - 預設值。
返回:
屬性的 Integer 值。
另請參見:
System.getProperty(java.lang.String), System.getProperty(java.lang.String, java.lang.String)

getInteger

public static Integer getInteger(String nm,
                                 Integer val)
返回具有指定名稱的系統屬性的整數值。第一個參數被視為系統屬性的名稱。通過 System.getProperty(java.lang.String) 方法可以存取系統屬性。然後,根據每個 Integer.decode 方法,將該屬性的字元串值解釋為一個整數值,並返回一個表示該值的 Integer 物件。

第二個參數是預設值。如果未具有指定名稱的屬性,或者屬性的數字格式不正確,或者指定名稱為空或 null,則返回預設值。

參數:
nm - 屬性名。
val - 預設值。
返回:
屬性的 Integer 值。
另請參見:
System.getProperty(java.lang.String), System.getProperty(java.lang.String, java.lang.String), decode(java.lang.String)

decode

public static Integer decode(String nm)
                      throws NumberFormatException
String 解碼為 Integer。接受通過以下語法給出的十進制、十六進制和八進制數字:
DecodableString:
Signopt DecimalNumeral
Signopt 0x HexDigits
Signopt 0X HexDigits
Signopt # HexDigits
Signopt 0 OctalDigits

Sign:
-
Java Language Specification 的第 §3.10.1 節中有 DecimalNumeralHexDigitsOctalDigits 的定義。

跟在(可選)負號和/或進制說明符(“0x”、“0X”、“#”或前導零)後面的字元序列是使用指示的進制(10、16 或 8)通過 Integer.parseInt 方法解析的。字元序列必須表示一個正值,否則會拋出 NumberFormatException。如果指定的 String 的第一個字元是減號,則對結果求反。String 中不允許出現空白字元。

參數:
nm - 要解碼的 String
返回:
保存 nm 所表示的 int 值的 Integer 物件。
拋出:
NumberFormatException - 如果 String 不包含可解析整數。
從以下版本開始:
1.2
另請參見:
parseInt(java.lang.String, int)

compareTo

public int compareTo(Integer anotherInteger)
在數字上比較兩個 Integer 物件。

指定者:
介面 Comparable<Integer> 中的 compareTo
參數:
anotherInteger - 要比較的 Integer
返回:
如果該 Integer 等於 Integer 參數,則返回 0 值;如果該 Integer 在數字上小於 Integer 參數,則返回小於 0 的值;如果 Integer 在數字上大於 Integer 參數,則返回大於 0 的值(有符號的比較)。
從以下版本開始:
1.2

highestOneBit

public static int highestOneBit(int i)
返回具有至多單個 1 位的 int 值,在指定的 int 值中最高位(最左邊)的 1 位的位置。如果指定的值在其二進制補碼表示形式中不具有 1 位,即它等於零,則返回零。

返回:
返回具有單個 1 位的 int 值, 在指定值中最高位的 1 位的位置,否則,如果指定值本身等於零,則返回零。
從以下版本開始:
1.5

lowestOneBit

public static int lowestOneBit(int i)
返回具有至多單個 1 位的 int 值,在指定的 int 值中最低位(最右邊)的 1 位的位置。如果指定的值在其二進制補碼表示形式中不具有 1 位,即它等於零,則返回零。

返回:
返回具有單個 1 位的 int 值, 在指定值中最低位的 1 位的位置,否則,如果指定值本身等於零,則返回零。
從以下版本開始:
1.5

numberOfLeadingZeros

public static int numberOfLeadingZeros(int i)
在指定 int 值的二進制補碼表示形式中最高位(最左邊)的 1 位之前,返回零位的數量。如果指定值在其二進制補碼表示形式中不存在 1 位,換句話說,如果它等於零,則返回 32。

注意,此方法與進制為 2 的對數密切相關。對於所有的正 int 值 x:

返回:
返回在指定 int 值的二進制補碼表示形式中最高位(最左邊)的 1 位之前的零位的數量;否則,如果該值等於零,則返回 32。
從以下版本開始:
1.5

numberOfTrailingZeros

public static int numberOfTrailingZeros(int i)
返回指定的 int 值的二進制補碼表示形式中最低(“最右邊”)的為 1 的位後面的零位個數。如果指定值在它的二進制補碼表示形式中沒有為 1 的位,即它的值為零,則返回 32。

返回:
返回在指定 int 值的二進制補碼表示形式中最低位(最右邊)的 1 位之後零位的數量;否則,如果該值等於零,則返回 32。
從以下版本開始:
1.5

bitCount

public static int bitCount(int i)
返回指定 int 值的二進制補碼表示形式的 1 位的數量。此函數有時用於人口普查

返回:
返回指定 int 值的二進制補碼表示形式的 1 位的數量。
從以下版本開始:
1.5

rotateLeft

public static int rotateLeft(int i,
                             int distance)
返回根據指定的位數循環左移指定的 int 值的二進制補碼表示形式而得到的值。(位是從左邊(即高位)移出,從右邊(即低位)再進入)

注意,使用負距離的左循環等同於右循環:rotateLeft(val, -distance) == rotateRight(val, distance)。還要注意的是,以 32 的任何倍數進行的循環都是無操作指令,因此,即使距離為負,除了最後五位外,其餘所有循環距離都可以忽略:rotateLeft(val, distance) == rotateLeft(val, distance & 0x1F)

返回:
返回根據指定的位數循環左移指定的 int 值的二進制補碼表示形式而得到的值。
從以下版本開始:
1.5

rotateRight

public static int rotateRight(int i,
                              int distance)
返回根據指定的位數循環右移指定的 int 值的二進制補碼表示形式而得到的值。(位是從右邊(即低位)移出,從左邊(即高位)再進入)

注意,使用負距離的右循環等同於左循環:rotateRight(val, -distance) == rotateLeft(val, distance)。還要注意的是,以 32 的任何倍數進行的循環都是無操作指令,因此,即使距離為負,除了最後五位外,其餘所有循環距離都可以忽略:rotateRight(val, distance) == rotateRight(val, distance & 0x1F)

返回:
返回根據指定的位數循環右移指定的 int 值的二進制補碼表示形式而得到的值。
從以下版本開始:
1.5

reverse

public static int reverse(int i)
返回通過反轉指定 int 值的二進制補碼表示形式中位的順序而獲得的值。

返回:
返回通過反轉指定 int 值中位的順序而獲得的值。
從以下版本開始:
1.5

signum

public static int signum(int i)
返回指定 int 值的符號函數。(如果指定值為負,則返回 -1;如果指定值為零,則返回 0;如果指定的值為正,則返回 1。)

返回:
返回指定 int 值的符號函數。
從以下版本開始:
1.5

reverseBytes

public static int reverseBytes(int i)
返回通過反轉指定 int 值的二進制補碼表示形式中位元組的順序而獲得的值。

返回:
返回通過反轉指定 int 值的位元組而獲得的值。
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only