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 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
byte Byte
short Short
int integer (讲)
long Long
float Float
double Double
char Character (讲)
boolean Boolean
(4)Integer的构造方法:
public Integer(int value)
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)正确形式如下
2)正确形式如下
Integer i = new Integer("100"); System.out.println("i:"+i);
(5)Int和String类型的相互转化
1)int转换为String类型
//首先定义一个int类型的变量
int num = 100 ;
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 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)
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+"个"); } }