黑马程序员技术交流社区
标题:
Java基础类型包装类
[打印本页]
作者:
936994215
时间:
2016-7-5 15:22
标题:
Java基础类型包装类
package wrapper;
/*
* 基本数据类型对象包装类
* byte Byte
* short Short
* int Integer
* long Long
* boolean Boolean
* float Float
* double Double
* char Character
*
* 基本数据类型对象包装类的最常见作用
* 就是用于基本数据类型和字符串之间进行转换
* 1.基本数据类型转换成字符串
* 基本数据类型+""
* 基本数据类型.toString(基本数据类型值)
* 如: Integer.toString(34);//将34转换成"34"
* String toString():返回一个表示该 Integer 值的 String 对象。
* static String toString(int i):返回一个表示指定整数的 String 对象。
* static String toString(int i, int radix):返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
*
*
*
* 2.字符串转换成基本数据类型
* xxx a = Xxx.parseXxx(string);
* int a = Integer.parseInt("123");//数字格式字符串,否则抛出NumberFormatException
* double b = Double.parseDouble("12.34");
* boolean b = Boolean.parseBoolean("true");
* Integer i = new Integer("123");
* int num = i.intValue();
*
* 3.十进制转换成其它进制
* static String toBinaryString(int i):以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
* static String toHexString(int i):以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
* static String toOctalString(int i):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
*
* 4.其它进制转换成十进制
* static Integer valueOf(String s, int radix):返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
*
* 5.对二进制的处理
* 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 值的二进制补码表示形式而得到的值。
*
* 6.比较
* int compareTo(Integer anotherInteger):在数字上比较两个 Integer 对象。
*
*/
public class IntegerDemo {
public static void main(String[] args) {
//整数类型最大值2^31-1
int max = Integer.MAX_VALUE;
//将一个字符串转换成整数
int num = Integer.parseInt("123");
System.out.println(toHexString(60));
}
public static void wrapper() {
Integer x = new Integer("123");
Integer y = new Integer("123");
System.out.println("x==y:"+(x==y)); //false
System.out.println("x.equals(y):"+x.equals(y)); //true
Integer i = 4; //自动装箱
i = i + 2; //自动拆箱:变成int类型和2进行加法运算
Integer a = 128;
Integer b = 128;
System.out.println("a==b:"+(a==b)); //false,不同对象
Integer m = 127;
Integer n = 127;
System.out.println("m==n:"+(m==n)); //true,m和n指向同一个对象
//当数值在byte范围内,如果数值已经存在,则不会开辟新空间
}
public static String toBinaryString(int num) {
return trans(num,1,1);
}
public static String toHexString(int num) {
return trans(num,15,4);
}
public static String toOctarString(int num) {
return trans(num,7,3);
}
private static String trans(int num, int base, int offset) {
StringBuilder sb = new StringBuilder();
char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(num!=0) {
int temp = num & base;
num = num >>> offset;
sb.append(chs[temp]);
}
return sb.reverse().toString();
}
}
复制代码
作者:
shuiwa
时间:
2016-7-5 15:24
过来看一看,可以我还没有学
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2