Arrays类,包装类,正则表达式,集合
一、Arrays类
1.定义:针对数组进行操作的工具类。
提供了排序,查找等功能。
2.成员方法:toString() sort()
二、包装类
1.为什么使用包装类
包装类提供一系列属性和方法供开发人员使用 2.java面向对象语言,操作的都是类
2.包装类能做什么
使用包装类实现类型转换,进制转换,最值
3.基本类型对应的包装类
byte Byte
short Short
int Integer
long Long
double Double
float Float
char Character
boolean Boolean
4.Integer成员方法
public int intValue() 将Integer转换为int
public static int parseInt(String s)将Strinng转换为int
public static String toString(int i)将int转换为String
public static Integer valueOf(int i)将int转换为Integer
public static Integer valueOf(String s)将Strinng转换为Integer
String和int相互转换
int->String
int number = 1;
第一种:String str = ""+number;
第二种:String str = String.valueOf(number);
第三种:Integer i = new Integer(number); String str = i.toString();
第四种:String str = Integer.toString(number);
*String->int
String str = "4";
第一种:Integer i = new Integer(str); int i1 = i.intValue();
第二种:int i = Integer.parseInt(str);*
5.JDK5的新特性
* 自动装箱:把基本类型转换为包装类类型
* 自动拆箱:把包装类类型转换为基本类型
源码:
Integer num = 100;//自动装箱
num = num+200;//拆箱->装箱
反编译后:
Integer num = Integer.valueOf(100);
num = Integer.valueOf(num.intValue() + 200);
注意:
Integer i = null;
i = i+1;//NullPointerException
System.out.println(i);
反编译后:
Integer i = null;
i = Integer.valueOf(i.intValue() + 1);
System.out.println(i);
6.缓冲池:针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间
7.Character
a.定义:Character类在对象中包装一个基本类型 char 的值
b.作用:该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写
c.方法
构造:Character(char value)
成员方法:
public static boolean isUpperCase(char ch)判断字符是否是大写
public static boolean isLowerCase(char ch)判断字符是否是小写
public static boolean isDigit(char ch)判断字符是否是数字
public static char toUpperCase(char ch)转换大写
public static char toLowerCase(char ch)转换小写
d.统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
三、正则表达式
1.定义:正则表达式:符合规则的字符串
2.正则表达式规则(规则字符在java.util.regex Pattern类中
)
3.正则表达式的应用
判断功能
public boolean matches(String regex)
校验手机号:11位 1 (3,5,7,8)
String regex = "1[3578]\\d{9}";
String phone = "18643435654";
System.out.println(phone.matches(regex));
分割功能
public String[] split(String regex)
String str = "a-b-c";
String[] newstr = str.split("b");
String str = "a b c";
String[] newstr = str.split(" ");
String str = "a b c d";
String[] newstr = str.split(" +");
for (int i = 0; i < newstr.length; i++) {
System.out.println(newstr[i]);
}
String str = "D:\\Program Files (x86)\\Java\\jdk1.7.0_21";
String[] newstr = str.split("\\\\");
for (int i = 0; i < newstr.length; i++) {
System.out.println(newstr[i]);
}
替换功能
public String replaceAll(String regex,String replacement)
论坛中不能出现数字字符,用*替换
String content = "哈哈哈3333AAAaaaa_";
String regex02 = "\\d";
String newStr = content.replaceAll(regex02, "*");
System.out.println(newStr);//哈哈哈****AAAaaaa_
获取功能
Pattern和Matcher类的使用
论坛中不能出现数字字符,用*替换
实现方式一:
Pattern p = Pattern.compile("\\d");
Matcher m = p.matcher("3");
boolean bool = m.matches();
System.out.println(bool);//true
实现方式二:
boolean bool1 = "3".matches("\\d");
System.out.println(bool1);//true
四、集合
1:对象数组(掌握)
(1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。
(2)案例:
用数组存储5个学生对象,并遍历数组。
2:集合(Collection)(掌握)
(1)集合的由来?
我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组
而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。
(2)集合和数组的区别?
A:长度区别
数组固定
集合可变
B:内容区别
数组可以是基本类型,也可以是引用类型
集合只能是引用类型
C:元素内容
数组只能存储同一种类型
集合可以存储不同类型(其实集合一般存储的也是同一种类型)
(3)集合的继承体系结构?
由于需求不同,Java就提供了不同的集合类。这多个集合类的数据结构不同,但是它们都是要提供存储和遍历功能的,
我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图。
Collection
|--List
|--ArrayList
|--Vector
|--LinkedList
|--Set
|--HashSet
|--TreeSet