Java包装类

包装类

为什么要有包装类?

Java是一个面向对象的编程语言,基本数据类型并不具有对象的性质,为了让基本类型也具有对象的特性就出现了包装类型

比如Collection集合中就存放的一定是包装类型并非是基本的数据类型

Java中基本数据类型转成包装类型:

自动装箱和自动拆箱

自动装箱

装箱表示基本数据类型转换成包装类型,而自动代表着jdk5.0以后自动实现基本数据类型转成包装类型直接赋值包装类型即可

举个例子:

 1 public class Test01 {
 2     public static void main(String[] args) {
 3         //在jdk5.0以前需要手动装箱
 4         int a=15;//基本数据类型
 5         Integer b=new Integer(a);//手动装箱
 6         
 7         //在jdk5.0以后可以自动装箱
 8         Integer c = a; //直接将基本数据类型赋给包装类型
 9     }
10 }

自动拆箱

拆箱表示包装类型转换成基本数据类型,而而自动代表着jdk5.0以后自动实现包装类型转成基本数据类直接赋值基本数据类型即可

举个例子:

 1 public class Test01 {
 2     public static void main(String[] args) {
 3         //在jdk5.0以前需要手动装箱
 4         Integer a=new Integer(15);//包装类型
 5         int b = a.intValue();//手动拆箱
 6 
 7         //在jdk5.0以后直接将引用类型赋值给基本数据类型即可
 8         int c= a;
 9 
10     }
11 }

包装类型常用的方法

Integer类中常用的方法

①parseInt(String a):静态方法,把数字字符串转换为整数。注意:如果字符串中存在非数据类型可能会出现异常

举个例子:

1 public class Test01 {
2     public static void main(String[] args) {
3         //字符串中不是全为数字会报错
4         int i= Integer.parseInt("abc");
5         System.out.println("整数:"+i);
6     }
7 }

效果展示:

 ②compare(Integer a, Integer b):比较两个整数的大小

如果 a>b 返回  1。

如果 a=b 返回  0。

如果  a<b 返回 -1。

举个例子:

 1 public class Test01 {
 2     public static void main(String[] args) {
 3         //a<b时
 4         System.out.println("a<b时返回值:"+Integer.compare(19,24));
 5         //a>b时
 6         System.out.println("a>b时返回值:"+Integer.compare(23,10));
 7         //a==b时
 8         System.out.println("a==b时返回值:"+Integer.compare(10,10));
 9     }
10  }

效果展示:

Character类常见的方法

①isDigit(char  ch):判断指定的字符是否为数字

举个例子:

1 public class Test01 {
2     public static void main(String[] args) {
3         //判断指定字符是否为数字
4         //里面为数字,返回true
5         System.out.println("里面是数字返回:"+Character.isDigit('1'));
6         //里面不是数组,则返回false
7         System.out.println("里面不是数字返回:"+Character.isDigit('a'));
8     }
9  }

效果展示:

 ②isLetter(char ch):判断指定的字符是否为字母

举个例子:

1 public class Test01 {
2     public static void main(String[] args) {
3         //判断指定的字符是否为字母
4         //里面为字母,返回true
5         System.out.println("里面是字母返回:"+Character.isLetter('a'));
6         //里面不是字母,则返回false
7         System.out.println("里面不是字母返回:"+Character.isLetter('1'));
8     }
9  }

效果展示:

 ③isLowerCase(char ch) :判断指定的字符是否为小写字母

举个例子:

1 public class Test01 {
2     public static void main(String[] args) {
3         //判断指定的字符是否为小写字母
4         //里面为小写字母,返回true
5         System.out.println("里面是小写字母返回:"+Character.isLowerCase('a'));
6         //里面不是小写字母,则返回false
7         System.out.println("里面不是小写字母返回:"+Character.isLowerCase('A'));
8     }
9  }

效果展示:

 ④isUpperCase(char ch) :判断指定的字符是否为大写

1 public class Test01 {
2     public static void main(String[] args) {
3         //判断指定的字符是否为小写字母
4         //里面为大写字母,返回true
5         System.out.println("里面是小写字母返回:"+Character.isUpperCase('A'));
6         //里面不是大写字母,则返回false
7         System.out.println("里面不是小写字母返回:"+Character.isUpperCase('a'));
8     }
9  }

效果展示:

综合案例

需求:在这个"asadasASDHG@#@#R%#1234"字符串中判断字符串中小写字母,大写字母,数字以及其他的个数。

思路:
这个字符串统计出大写字母,小写字母,数字和其他字符的数量
①字符串可以通过循环获取字符
②我们可以使用包装类中的Character中的三大方法来判断字符是否为指定内容
③最后通过四个变量来统计大写字母个数,小写字母个数,数字个数和其他字符个数

代码:

 1 public class Test01 {
 2     public static void main(String[] args) {
 3         //这是一个给定的字符串
 4         String str="asadasASDHG@#@#R%#1234";
 5         //大写字母个数
 6         int bigSum=0;
 7         //小写字母个数
 8         int smallSum=0;
 9         //数字个数
10         int numSum=0;
11         //其他个数
12         int otherSum=0;
13         for (int i = 0; i < str.length(); i++) {
14             //字符是一个大写字母
15             if(Character.isUpperCase(str.charAt(i))){
16                 //统计大写字母+1
17                 bigSum++;
18             }//字符是一个小写字母
19             else if (Character.isLowerCase(str.charAt(i))) {
20                 //统计小写字母+1
21                 smallSum++;
22             }//字符是一个数字 
23             else if (Character.isDigit(str.charAt(i))) {
24                 //统计数字+1
25                 numSum++;
26             }//其他的为其他字符
27             else{
28                 otherSum++;
29             }
30         }
31         System.out.println("这个字符串中大写字母有"+bigSum+",小写字母有"+smallSum+",数字有"+numSum+",其他字符有"+otherSum);
32     }
33  }

效果展示:

 

posted @ 2023-11-12 14:49  和哗  阅读(6)  评论(0编辑  收藏  举报