文章目录
一、包装类
概念:把java中的8种基本数据类型,进行了封装,封装为类(包装类)
包装类
-
8种:Byte、Short、Integer、Long、 Float、Double、 Character、 Boolean
-
作用:基于8基本数据类型进行封装,提供了一些针对封装类型的相关功能
-
//Long类型的最大值: Long.MAX_VALUE;//使用包装类中的静态常量
-
在开发中的作用:
- 实现String类型 和 基本数据类型 之间的互换
-
-
掌握重点:String类型 和 基本数据类型 之间的互换
-
基本数据类型 => String
-
int num=100; String s = num+"";//最简单的方式:使用+""
-
-
String => 基本数据类型
-
//使用包装类对象中的静态方法:parseXxx(String s) String s ="3.14"; double num = Double.parseDouble(s);
-
-
-
问题:基本数据类型 和 包装类之间可以互相使用吗?
- 答案:可以。 自动装箱和自动拆箱
案例Integer类:
//构造方法
Integer num1 = new Integer(100);//num1中存储了100
Integer num2 = new Integer("123");//把字符串"123"转为整数123
//使用:(把包装当做普通的变量来使用)
num1 = num1 + 100;
//包装类可以不使用构造方法,就可以进行赋值
Integer num3 = 100;
//运算
num3 = num3 + 1;
//通常反编译查看源代码:
public class IntegerDemo1
{
public IntegerDemo1()
{
}
public static void main(String args[])
{
//装箱的操作:Integer类中的静态方法:valueOf(数值)
Integer num3 = Integer.valueOf(100);
//拆箱操作: Integer类中的方法: intValue()
num3 = Integer.valueOf(num3.intValue() + 1);
System.out.println(num3);
}
}
//结论:不需要自己书写装箱和拆箱的代码
只需要把包装类类型作为普通的的数据类型使用
问题1:怎么把普通类型数据转换为String类型?
最简单做法:使用+"" //任意类型的数据和字符串类型相加,结果都是String
问题2:把String类型 转换为 普通类型数据?
使用包装类中的静态方法:parseXxx(String str)
Xxx: Int、Float、Double、Long、Boolean
示例:
int num = Integer.parseInt("122")
double num = Double.parseDouble("3.14");
//注意:character类中没有parseXxx()方法
String => char
String str="a";
char ch = a.charAt(0);
二、String类
- String类:用来存储字符串格式的数据
- 实例化: public String() 、public String(String s)、public String(char[] chs)、…
- 最简单的方式: String s=“aaa”;
- 常用方法:
- 判断方式
- 获取方法
- 截取方法
- 替换方法
- 切割方法
- 转换方法
- 实例化: public String() 、public String(String s)、public String(char[] chs)、…
String s1=" itcast ";
String s2="itcast";
boolean result = s1.equals(s2)//false
s1.trim()//去除前后空格
s1.trim().eqauls(s2)//true
//split("切割符号")
String str="张三,23,男,2020-03-20,13800138000";
String[] strs = str.split(",");//张三 23 男 2020-03-20 13800138000
//strs={"张三","23","男","2020-03-20","13800138000"}
三、Arrays类
- 类:针对数组进行操作的工具类
- 实例化:不需要实例化
- 常用方法:
- 排序:sort(数组)
- 把数组转换为字符串:toString()
四、大整型、大浮点类
-
BigInteger类
- 类: 大整型(用来存储超整数范围的整数值)
- 实例化:BigInteger num = new BigInteger(“12312312312312313123123123132”)
- 常用方法:
- 加、减、乘、除
-
BigDecimal类
- 类:大浮点 (用来存储高精度的小数)
- 实例化:BigDecimal num = new BigDecimal(“3213123123.123123123123123123123123123123”);
- 常用方法:
- 加、减、乘、除
- 除:当除不尽时会出现异常
- 解决方案:需要明确除法以后的小数精度位数、明确取舍方式
- 除:当除不尽时会出现异常
- 加、减、乘、除
五、正则表达式
正则表达式:
- 基于一些特定符号组合而成的一种用来验证字符串是否符合标准的规则
- 示例: 手机号字符串、身份证号字符串
- 手机号不能随意给出任意字符,必须按照手机号的规则来给出
- 正则:约束手机号字符串的规则
- 手机号不能随意给出任意字符,必须按照手机号的规则来给出
- 示例: 手机号字符串、身份证号字符串
结论:正则表达式就是用来操作字符串的
正则表达式
- 作用:对字符串进行校验
- 示例: 程序中的邮箱数据,可以使用String类型存储,可以针对String存储的邮箱进行正则校验,确保邮箱符合要使用的数据标准
- 正则表达式:是由一些特定的符合组合而成的字符串验证规则。
- 字符类: [a-z]、 [abc] 、
[a-z&[^abc]]
- 运算符:&&、|
- 预定义字符:\d \w .
- 数量词:? * + {n} {n,} {n,m}
- 分组: (正则表达式)
- 字符类: [a-z]、 [abc] 、
- String中可以使用正则的方法:
- boolean matches(String regex) //检验字符串是否符合正则规则
- String[] split(String regex) //按照给定的正则表达式,切割字符串
- String replaceAll(String regex , String newChar)
String类中的方法:
public boolean matches(String 正则表达式字符串)
//功能:用来验证字符串对象是否符合指定的正则表达式规则
示例:
String s="add";
boolean flag = s.matches("[a-z]ad");//结果:fales
System.out.print("ab\nc");//结果:ab 换行 c
//就希望输出: “ab\nc”
System.out.print("ab\\nc")
split("\\.") //语法的特殊性
六、Collection集合
学习集合的技巧:
- 清楚每一个集合对象的底层使用的是什么数据结构
- 只有明白是什么数据结构了,在开发中才知道应该使用哪个集合来存储数据
- 集合中的功能:添、删、改、查、遍历
Collection集合
1 、集合概述
我们之前所学的ArrayList就是集合,集合就是一种能够存储多个数据的容
器。常见的容器有集合和数组。
集合和数组有什么区别呢?
- 集合长度可变,数组长度不可变。
- 集合可以只能存储引用数据类型(如果要存储基本数据类型需要进行装
箱),数组可以使用任意类型定义,并存储对应类型的数据
2 、集合的分类
集合有两大分类:
- Collection集合(今天学习)
- Map集合(后面学习)
我们此前所学ArrayList就是Collection集合的一种实现。
3、Collection集合继承体系
在学习集合体系,一般先学习顶层接口。学习
了顶层接口的方法,子类型继承而来的方法,
就可以不用重复学习。
因此,我们先学习Collection集合,看看
Collection中有哪些功能。
Collection-常用方法
4 、常用方法
public boolean add(E e): 把给定的对象添加到当前集合中 。
public void clear() :清空集合中所有的元素。
public boolean remove(E e): 把给定的对象在当前集合中删除。
public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
public boolean isEmpty(): 判断当前集合是否为空。
public int size(): 返回集合中元素的个数。
public Object[] toArray(): 把集合中的元素,存储到数组中
七、Iterator迭代器
作用
用来对Collection集合进行遍历使用的。学习迭代器的目的就是为了遍历集合
简述使用迭代器的使用步骤
1.先获取集合的迭代器对象
2.使用迭代器对象调用hasNext(),判断是否存在下一个元素
3.如果有调用next()方法,获取下一个元素
4.循环2,3步骤,直到 hasNext方法返回false为止。
迭代器的使用注意事项
1. 当迭代器迭代元素完成后,不能继续next获取元素,
否则会报:NoSuchElementException
2. 当迭代器在使用的过程中,不能使用集合对象增删元素。会导致报错
ConcurrentModificationException。如果要删除可以使用迭代器来删除
八、增强for循环
增强for循环(foreach),专门用来遍历集合或者数组,底层实现使用迭代器。
for( 变量类型 变量 : 数组/集合 ) {
//处理数据
}
说明:变量就是每次循环所获取的元素,变量类型就是数组或者集合的元素类型
后,不能继续next获取元素,
否则会报:NoSuchElementException
- 当迭代器在使用的过程中,不能使用集合对象增删元素。会导致报错
ConcurrentModificationException。如果要删除可以使用迭代器来删除
#### 八、增强for循环
增强for循环(foreach),专门用来遍历集合或者数组,底层实现使用迭代器。
for( 变量类型 变量 : 数组/集合 ) {
//处理数据
}
说明:变量就是每次循环所获取的元素,变量类型就是数组或者集合的元素类型
**IDEA快速构建增强for循环:集合/数组.for**