Java基本类型包装类概述与Integer类、Character类用法分析
本文实例讲述了Java基本类型包装类概述与Integer类、Character类用法。分享给大家供大家参考,具体如下:
基本类型包装类概述
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。
基本类型和包装类的对应
Byte,Short,Integer,Long,Float,Double,Character,Boolean
Integer类
为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型
packagecn.itcast_01;
/*
*需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来
*需求2:我要求大家判断一个数据是否是int范围内的。
*首先你的知道int的范围是多大?
*
*为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。
*byteByte
*shortShort
*intInteger
*longLong
*floatFloat
*doubleDouble
*charCharacter
*booleanBoolean
*
*用于基本数据类型与字符串之间的转换。
*/
publicclassIntegerDemo{
publicstaticvoidmain(String[]args){
//不麻烦的就来了
//publicstaticStringtoBinaryString(inti)
System.out.println(Integer.toBinaryString(100));
//publicstaticStringtoOctalString(inti)
System.out.println(Integer.toOctalString(100));
//publicstaticStringtoHexString(inti)
System.out.println(Integer.toHexString(100));
//publicstaticfinalintMAX_VALUE
System.out.println(Integer.MAX_VALUE);
//publicstaticfinalintMIN_VALUE
System.out.println(Integer.MIN_VALUE);
}
}
Integer的构造方法
packagecn.itcast_02;
/*
*Integer的构造方法:
*publicInteger(intvalue)
*publicInteger(Strings)
*注意:这个字符串必须是由数字字符组成
*/
publicclassIntegerDemo{
publicstaticvoidmain(String[]args){
//方式1
inti=100;
Integerii=newInteger(i);
System.out.println("ii:"+ii);
//方式2
Strings="100";
//NumberFormatException
//Strings="abc";//这个字符串必须是由数字字符组成
Integeriii=newInteger(s);
System.out.println("iii:"+iii);
}
}
String和int的相互转换
packagecn.itcast_03;
/*
*int类型和String类型的相互转换
*
*int--String
*String.valueOf(number)
*
*String--int
*Integer.parseInt(s)
*/
publicclassIntegerDemo{
publicstaticvoidmain(String[]args){
//int--String
intnumber=100;
//方式1
Strings1=""+number;
System.out.println("s1:"+s1);
//方式2
Strings2=String.valueOf(number);
System.out.println("s2:"+s2);
//方式3
//int--Integer--String
Integeri=newInteger(number);
Strings3=i.toString();
System.out.println("s3:"+s3);
//方式4
//publicstaticStringtoString(inti)
Strings4=Integer.toString(number);
System.out.println("s4:"+s4);
System.out.println("-----------------");
//String--int
Strings="100";
//方式1
//String--Integer--int
Integerii=newInteger(s);
//publicintintValue()
intx=ii.intValue();
System.out.println("x:"+x);
//方式2
//publicstaticintparseInt(Strings)
inty=Integer.parseInt(s);
System.out.println("y:"+y);
}
}
Integer的进制转换的操作
packagecn.itcast_04;
/*
*常用的基本进制转换
*publicstaticStringtoBinaryString(inti)
*publicstaticStringtoOctalString(inti)
*publicstaticStringtoHexString(inti)
*
*十进制到其他进制
*publicstaticStringtoString(inti,intradix)
*由这个我们也看到了进制的范围:2-36
*为什么呢?0,...9,a...z,加起来36个
*
*其他进制到十进制
*publicstaticintparseInt(Strings,intradix)
*/
publicclassIntegerDemo{
publicstaticvoidmain(String[]args){
//十进制到二进制,八进制,十六进制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------");
//十进制到其他进制
System.out.println(Integer.toString(100,10));
System.out.println(Integer.toString(100,2));
System.out.println(Integer.toString(100,8));
System.out.println(Integer.toString(100,16));
System.out.println(Integer.toString(100,5));
System.out.println(Integer.toString(100,7));
System.out.println(Integer.toString(100,-7));
System.out.println(Integer.toString(100,70));
System.out.println(Integer.toString(100,1));
System.out.println(Integer.toString(100,17));
System.out.println(Integer.toString(100,32));
System.out.println(Integer.toString(100,37));
System.out.println(Integer.toString(100,36));
System.out.println("-------------------------");
//其他进制到十进制
System.out.println(Integer.parseInt("100",10));
System.out.println(Integer.parseInt("100",2));
System.out.println(Integer.parseInt("100",8));
System.out.println(Integer.parseInt("100",16));
System.out.println(Integer.parseInt("100",23));
//NumberFormatException
//System.out.println(Integer.parseInt("123",2));
}
}
JDK5的新特性--自动装箱和自动拆箱
packagecn.itcast_05;
/*
*JDK5的新特性
*自动装箱:把基本类型转换为包装类类型
*自动拆箱:把包装类类型转换为基本类型
*
*注意一个小问题:
*在使用时,Integerx=null;代码就会出现NullPointerException。
*建议先判断是否为null,然后再使用。
*/
publicclassIntegerDemo{
publicstaticvoidmain(String[]args){
//定义了一个int类型的包装类类型变量i
//Integeri=newInteger(100);
Integerii=100;
ii+=200;
System.out.println("ii:"+ii);
//通过反编译后的代码
//Integerii=Integer.valueOf(100);//自动装箱
//ii=Integer.valueOf(ii.intValue()+200);//自动拆箱,再自动装箱
//System.out.println((newStringBuilder("ii:")).append(ii).toString());
Integeriii=null;
//NullPointerException,如果iii为空对象,会报错,需要判断是否为空
if(iii!=null){
iii+=1000;
System.out.println(iii);
}
}
}
-128到127之间的数据缓冲池问题
packagecn.itcast_06;
/*
*看程序写结果
*
*注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据
*/
publicclassIntegerDemo{
publicstaticvoidmain(String[]args){
Integeri1=newInteger(127);
Integeri2=newInteger(127);
System.out.println(i1==i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integeri3=newInteger(128);
Integeri4=newInteger(128);
System.out.println(i3==i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integeri5=128;
Integeri6=128;
System.out.println(i5==i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integeri7=127;
Integeri8=127;
System.out.println(i7==i8);//true
System.out.println(i7.equals(i8));
//通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间
//Integerii=Integer.valueOf(127);
}
}
Character
Character类在对象中包装一个基本类型char的值
packagecn.itcast_01;
/*
*Character类在对象中包装一个基本类型char的值
*此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然
*
*构造方法:
*Character(charvalue)
*/
publicclassCharacterDemo{
publicstaticvoidmain(String[]args){
//创建对象
//Characterch=newCharacter((char)97);
Characterch=newCharacter('a');
System.out.println("ch:"+ch);
}
}
Character类,常见方法。
确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写
packagecn.itcast_02;
/*
*publicstaticbooleanisUpperCase(charch):判断给定的字符是否是大写字符
*publicstaticbooleanisLowerCase(charch):判断给定的字符是否是小写字符
*publicstaticbooleanisDigit(charch):判断给定的字符是否是数字字符
*publicstaticchartoUpperCase(charch):把给定的字符转换为大写字符
*publicstaticchartoLowerCase(charch):把给定的字符转换为小写字符
*/
publicclassCharacterDemo{
publicstaticvoidmain(String[]args){
//publicstaticbooleanisUpperCase(charch):判断给定的字符是否是大写字符
System.out.println("isUpperCase:"+Character.isUpperCase('A'));
System.out.println("isUpperCase:"+Character.isUpperCase('a'));
System.out.println("isUpperCase:"+Character.isUpperCase('0'));
System.out.println("-----------------------------------------");
//publicstaticbooleanisLowerCase(charch):判断给定的字符是否是小写字符
System.out.println("isLowerCase:"+Character.isLowerCase('A'));
System.out.println("isLowerCase:"+Character.isLowerCase('a'));
System.out.println("isLowerCase:"+Character.isLowerCase('0'));
System.out.println("-----------------------------------------");
//publicstaticbooleanisDigit(charch):判断给定的字符是否是数字字符
System.out.println("isDigit:"+Character.isDigit('A'));
System.out.println("isDigit:"+Character.isDigit('a'));
System.out.println("isDigit:"+Character.isDigit('0'));
System.out.println("-----------------------------------------");
//publicstaticchartoUpperCase(charch):把给定的字符转换为大写字符
System.out.println("toUpperCase:"+Character.toUpperCase('A'));
System.out.println("toUpperCase:"+Character.toUpperCase('a'));
System.out.println("-----------------------------------------");
//publicstaticchartoLowerCase(charch):把给定的字符转换为小写字符
System.out.println("toLowerCase:"+Character.toLowerCase('A'));
System.out.println("toLowerCase:"+Character.toLowerCase('a'));
}
}
统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
packagecn.itcast_03;
importjava.util.Scanner;
/*
*统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
*
*分析:
*A:定义三个统计变量。
*intbigCont=0;
*intsmalCount=0;
*intnumberCount=0;
*B:键盘录入一个字符串。
*C:把字符串转换为字符数组。
*D:遍历字符数组获取到每一个字符
*E:判断该字符是
*大写bigCount++;
*小写smalCount++;
*数字numberCount++;
*F:输出结果即可
*/
publicclassCharacterTest{
publicstaticvoidmain(String[]args){
//定义三个统计变量。
intbigCount=0;
intsmallCount=0;
intnumberCount=0;
//键盘录入一个字符串。
Scannersc=newScanner(System.in);
System.out.println("请输入一个字符串:");
Stringline=sc.nextLine();
//把字符串转换为字符数组。
char[]chs=line.toCharArray();
//历字符数组获取到每一个字符
for(intx=0;x
PS:这里再为大家推荐几款功能相似的在线工具供大家参考:
在线任意进制转换工具:
http://tools.jb51.net/transcoding/hexconvert
字数统计工具:
http://tools.jb51.net/code/zishutongji
在线字母大小写转换工具:
http://tools.jb51.net/transcoding/upper
更多关于java相关内容感兴趣的读者可查看本站专题:《Java字符与字符串操作技巧总结》、《Java数组操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》
希望本文所述对大家java程序设计有所帮助。