java中 Integer的decode(),parseInt(),valueOf()有什么区别?

如题所述

【转】Integer.decode()和Intger.valueof()
今天没事看看API
decode合适用来分析数字
可以分析
8进:010=>分析后为 8
10进:10=>分析后为 10
16进:#10|0X10|0x10=>分析后是 16
而valueof 只能分析纯数字的String
像 010 这样的8进制 他会解析成 =>10
//////////////////////////////////////////////////////2010.01.22补充///////////////////////////////////////////////
public static int parseInt( s,
int radix)
throws
也可以用来分析各种输入,以radix为基数. 范围是 大于等于2,小于等于36
可以直接返回int.
decode 返回Integer
想要获得Integer:
String 为十进制. 采用valueof(String)合适. 非十进制,采用decode(String)
想要获得int
String 为十进制. 采用parseInt(String )合适. 非十进制,采用parseInt(String ,int)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-03-28
  int是JAVA八大基本数据类型(byte,shor,int,long,char,boolean,float,double)之一。
JAVA语言为八大基本数据提供了包装类,Integer对应是int类型的包装类,就是把int类型包装成Object对象。
  Java有2种不同的类型:引用类型和原始类型。Int是java的原始数据类型,Integer是java的为int提供的封装类。Java为每个原始类型提供了封装类。
  int 是基本数据类型
Integer 是int的一个包装类(wrapper),他是类不是基本数据类型,他的内部其实包含一个int型的数据
那为什么要用Integer呢,主要是因为面向对象的思想,因为Java语言是面向对象的,这也是它只所以流行的原因之一,对象封装有很多好处,可以把属性也就是数据跟处理这些数据的方法结合在一起,比如Integer就有parseInt()等方法来专门处理int型相关的数据,另一个非常重要的原因就是在Java中绝大部分方法或类都是用来处理类类型对象的,如ArrayList集合类就只能以类作为他的存储对象,而这时如果想把一个int型的数据存入list是不可能的,必须把它包装成类,也就是Integer才能被List所接受。所以Integer的存在是很必要的。
  始数据类型 引用数据类型
  boolean Boolean
  char Character
  byte Byte
  short Short
  int Integer
  long Long
  float Float
  double Double
  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以那种类型的数据结构存储,当引用类型和原始类型用作某个类的实例时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
  Integer类的使用方法
1、属性。
static int MAX_VALUE:返回最大的整型数;
static int MIN_VALUE:返回最小的整型数;
static Class TYPE :返回当前类型。
例子代码:
System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE );
结果为:Integer.MAX_VALUE: 2147483647
  2、构造函数。
Integer(int value) :通过一个int的类型构造对象;
Integer(String s) :通过一个String的类型构造对象;
例子代码:
Integer i = new Integer("1234");
生成了一个值为1234的Integer对象。
  3、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
1. byteValue():取得用byte类型表示的整数;
2. int compareTo(Integer anotherInteger) :比较两个整数。相等时返回0;小于时返回负数;大于时返回正数。
例子代码:
Integer i = new Integer(1234);
System.out.println("i.compareTo: " + i.compareTo(new Integer(123)) );
结果为:i.compareTo: 1
3. int compareTo(Object o) :将该整数与其他类进行比较。如果o也为Integer类,进行方法2的操作;否则,抛出ClassCastException异常。
4. static Integer decode(String nm) :将字符串转换为整数。
5. double doubleValue() :取得该整数的双精度表示。
6. boolean equals(Object obj) :比较两个对象。
7. float floatValue() :取得该整数的浮点数表示。
8. static Integer getInteger(String nm) :根据指定名确定系统特征值。
9. static Integer getInteger(String nm, int val) :上面的重载。
10. static Integer getInteger(String nm, Integer val) :上面的重载。
11. int hashCode() :返回该整数类型的哈希表码。
12. int intValue() : 返回该整型数所表示的整数。
13. long longValue() :返回该整型数所表示的长整数。
14. static int parseInt(String s) :将字符串转换成整数。s必须是时进制数组成,否则抛出NumberFormatException异常。
15. static int parseInt(String s, int radix) :以radix为基数radix返回s的十进制数。所谓的基数就是“几进制”。
例子代码:
String s1 = new String("1010");
System.out.println("Integer.parseInt(String s, int radix): " + Integer.parseInt(s1,2) );
结果为:Integer.parseInt(String s, int radix): 10
即s1在此例中被看成是二进制,返回十进制就是10。
16. short shortValue() :返回该整型数所表示的短整数。
17. static String toBinaryString(int i) :将整数转为二进制数的字符串。
18. static String toHexString(int i) :将整数转为十六进制数的字符串。
19. static String toOctalString(int i) :将整数转为八进制数的字符串。
20. String toString() :将该整数类型转换为字符串。
21. static String toString(int i) :将该整数类型转换为字符串。不同的是,此为类方法。
22. static String toString(int i, int radix) :将整数i以基数radix的形式转换成字符串。
例子代码:
int i1 = 54321;
System.out.println("Integer.toString(int i, int radix): " + Integer.toString(i1,16) );
结果为:Integer.toString(int i, int radix): d431
23. static Integer valueOf(String s) :将字符串转换成整数类型。
24. static Integer valueOf(String s, int radix) :将字符串以基数radix的要求转换成整数类型。本回答被网友采纳