JavaTM 2 Platform
Standard Ed. 5.0

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
          保持 int 类型的最大值的常量可取的值为 231-1。
static int MIN_VALUE
          保持 int 类型的最小值的常量可取的值为 -231
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)
          以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。
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
保持 int 类型的最小值的常量可取的值为 -231

另请参见:
常量字段值

MAX_VALUE

public static final int MAX_VALUE
保持 int 类型的最大值的常量可取的值为 231-1。

另请参见:
常量字段值

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 值。正好可以使用对基数为 10 的值使用的 parseInt 方法将该字符串转换成 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 将作为基数-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)
以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。

如果参数为负,那么无符号整数值为参数加上 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 的任何倍数进行的循环都是无操作 (no-op) 指令,因此,即使距离为负,除了最后五位外,其余所有循环距离都可以忽略: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 的任何倍数进行的循环都是无操作 (no-op) 指令,因此,即使距离为负,除了最后五位外,其余所有循环距离都可以忽略: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. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策