1.Integer类
(1)Integer类是int类型的包装类类型
(2)[问题1] 需要将100十进制 (整数默认十进制) 它的二进制,八进制,十六进制...
Integer提供了静态功能:
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(100));//1100100
System.out.println(Integer.toOctalString(100));//144
System.out.println(Integer.toHexString(100));//64
}
[问题2]需求:获取Integer的最值
public static final int MAX_VALUE public static final int MIN_VALUE
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);//2^31-1
System.out.println(Integer.MIN_VALUE);//-2^31
}
(3)基本类型对应都有一个保证类型,目的就为了将基本数据类型可以String类型之间进行互相转换
byte Byte
short Short
int integer (讲)
long Long
float Float
double Double
char Character (讲)
boolean Boolean
(4)Integer的构造方法:
public Integer(int value)
public static void main(String[] args) {
//创建一个Integer类对象
Integer i = new Integer(100);
Integer ii = 100 ; //底层实际代码执行的是:valueOf(int i)
System.out.println("i:"+i);
System.out.println("ii:"+ii);
}
注: 1)Integer ii = 100; 和 Integer i = new Integer(100);都是把100赋给一个Integer类型的对象,但是 Integer ii = 100 ;底层实际代码执行的是Integer.valueOf(int i) !该类中本身有一缓冲区的 :缓冲的值的范围:-128~127!
public Integer(String s)
Integer i = new Integer("abc") ;
System.out.println("i:"+i);//java.lang.NumberFormatException
注: 1)当前String类型的值是一个数字类型的字符串, 如果不是,会报java.lang.NumberFormatException异常!
2)正确形式如下
Integer i = new Integer("100");
System.out.println("i:"+i);
(5)Int和String类型的相互转化
1)int转换为String类型
//首先定义一个int类型的变量
int num = 100 ;
//方式1: 字符串拼接
String str = "" + num ;
System.out.println("str:"+str);
//方式2:valueOf(int i) ;
//int -->Integer--->String
Integer i = Integer.valueOf(num) ;
String str2 = i.toString() ;
System.out.println("str2:"+str2);
//方式3:静态toString(int i): static String toString(int i )
String str3 = Integer.toString(num) ;
System.out.println("str3:"+str3);
2)String转换为int类型
//首先定义一个字符串(一定要是数字字符串!)
String s = "100";
//方式1:String-->integer--->int
Integer i = new Integer(s);
//public int intValue()
int num = i.intValue() ;
System.out.println("num:"+num);
//方式2:(常用)public static int parseInt(String s)
int num = Integer.parseInt(s) ;
System.out.println("num:"+num);
(6)JDK5 以后提供了自动拆装箱
可以将Integer-->拆箱 int类型
可以将int类型--->装箱 Integer类型
public static void main(String[] args) {
//创建Integer对象
//Integer i = new Integer(100) ;
Integer i = 100 ;
i += 200; //先拆箱(Integer-->int),后装箱(int值---->Integer)
//引用类型 += 基本类型
System.out.println("i:"+i);
}
按理说,i+=200;类型不匹配,但事实上,不仅没有报错,还输出了期望的结果,为什么呢?
看源码
/**
* 反编译代码:
*
* Integer i = Integer.valueOf(100);
i = Integer.valueOf(i.intValue() + 200);//(int类型的100 +200),先拆箱(Integer-->int),后装箱(int值---->Integer)
System.out.println((new StringBuilder("i:")).append(i).toString());
*/
JDK5 还提供了哪些特性:
泛型,可变参数,增强for循环(在集合中讲)等等..
2.Character类
(1)Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
以确定字符的类别(小写字母,数字,等等)
(2)构造方法:
public Character(char value)
public static void main(String[] args) {
//创建Character类对象
//Character ch = new Character((char)97) ;
Character ch = new Character('a') ;
System.out.println("ch:"+ch);//a
}
(3)Character类的判断功能:
public static boolean isDigit(char ch)确定指定字符是否为数字。
public static boolean isLowerCase(int ch): 确定是否是小写字母字符
public static boolean isUpperCase(int ch):确定是否大写字母字符
两个转换功能:
public static int toLowerCase(int codePoint)
public static int toUpperCase(int codePoint)
(4)[需求]键盘录入一个字符串,统计当前字符串中大写字母字符,小写字母字符,数字字符的个数(不考虑其他字符)
现在改进:直接用Charater类的这三个判断功能
public static void main(String[] args) {
//定义三个统计变量
int bigCount = 0 ;
int smallCount= 0 ;
int numberCount = 0 ;
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//接收数据
System.out.println("请输入一个字符串:");
String line = sc.nextLine() ;
//把字符串转成字符数组
char[] chs = line.toCharArray() ;
//遍历,取出每一个字符
for(int x = 0 ; x < chs.length ; x ++) {
char ch = chs[x] ;
//判断当前ch字符是否为大写字母字符,数字字符,小写字母字符
if(Character.isUpperCase(ch)) {
bigCount ++;
}else if(Character.isDigit(ch)) {
numberCount++;
}else if(Character.isLowerCase(ch)) {
smallCount++ ;
}
}
System.out.println("大写字母字符有:"+bigCount+"个");
System.out.println("小写字母字符有:"+smallCount+"个");
System.out.println("数字字符有:"+numberCount+"个");
}
}