1.1字符串类
1.1.1 String类
使用String类进行操作之前,先对其进行初始化,可以通过以下两种方式:
1.
String str1=”abc”;
2.
方法声明 | 功能描述 |
String() | 创建一个内容为空的字符串 |
String(String value) | 根据指定的字符串内容创建对象 |
String(char[] value) | 根据指定的字符数组创建对象 |
String(byte[]bytes) | 根据指定的字节数组创建对象 |
1.1.2 String 类的常见操作
方法名 | 说明 |
public int length() | 返回次字符串长度 |
public char charAt(int index) | 获取某个索引位置的字符 |
public char[] toCharArray() | 将当前字符串转换成字符数组返回 |
public String substring(int beginIndex, int endIndex) | 根据开始和结束索引进行截取,得到新的字符串(包前不包后) |
public String substring(int beginIndex) | 从传入的索引处截取,截取到末尾,得到新的字符串 |
public String replace(CharSequence target, CharSequence replacement) | 使用新值,将字符串中的旧值替换,得到新的字符串 |
public String[] split(String regex) | 根据传入的规则切割字符串,得到字符串数组返回 |
1.1.3 StringBuilder类
1.什么是StringBuilder
StringBuilder是一个可变的字符串类,我们可以把它看成是一个对象容器。
作用:提高字符串的操作效率,如拼接、修改等。
2.String Builder构造器
构造器名称 | 说明 |
public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
3.String Builder常用方法
方法名称 | 说明 |
public StringBuilder append(任意类型) | 添加数据并返回 |
public StringBuilder reverse() | 将对象的内容反转 |
public int length() | 返回对象内容长度 |
public String toString() | 通过toString就可以实现把StringBuilder转换为String |
1.1.4 String buffer类
1.什么是StringBuffer类
在Java中,StringBuffer是一个用于处理字符串的类,它允许我们对字符串进行动态操作,如拼接、插入、删除等。
2. StringBuffer(可变字符串)
特点:StringBuffer对象是可变的,可以在已有字符串的基础上进行动态操作,比如拼接、插入、删除等。
适用场景:当你需要频繁修改字符串内容时,使用StringBuffer会比直接使用String更为高效,比如在循环中拼接字符串、频繁的插入、删除操作等。
1.2 System类与Runtime类
1.2.1 System类
1.2.2 Runtime类
1.3 Math类与Random类
1.3.1 Math类
1.3.2 Random类
构造方法:
public Random():没有种子,用的是默认种子,是当前时间的毫秒值
public Random(long seed):给出指定种子。给定种子后,每次得到的随机数相同的。
成员方法:
public int nextInt():返回的是int范围内的随机数
public int nextInt(int n):返回的是[0,n)范围内的随机数
1.4 日期时间类
1.4.1 Instant类
1.时间线上的某个时刻
2.通过获取Instant的对象可以拿到此刻的时间,该时间由两部分组成:从1970-01-01 00:00:00开始走到此刻的总秒数 + 不够1秒的纳秒数
1.4.2 LocalDate类
LocalDate:代表本地日期(年、月、日、星期)
1.4.3 LocalTime类与LocalDateTime类
LocalTime:代表本地时间(时、分、秒、纳秒)
LocalDateTime:代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒)
1.4.4 Period和Duration类
1.Period:计算日期间隔(年、月、日)
支持LocalDate类的对象
2.Duration:计算时间间隔(时、分、秒、纳秒)
支持LocalTime类、LocalDateTime类、Instant类的对象
1.5 包装类
1.基本数据类型,开辟在栈区
2.引用数据类型,开辟在堆区
3.包装类有属性有方法,但是基本类型没有
4.包装类对应着八大基本类型
(1)基本类型:byte short int long float double char boolean
(2)包装类:Byte Short Integer Long Float Double Character Boolean
5.相互转换
(1)将String转换为基本数据类型
包装类.parseXXX(String类型数据);
如:将String转换为int类型
String str = "123";
Integer.parseInt(str);
如:将String转换为double类型
String str = "123.1";
Double.parseDouble(str);
(2)将基本数据类型转化为String类型
方法一:使用拼接 其他类型 + ""
int num = 123;
String str = num + "";
方法二:使用String.valueOf()
int num = 123;
String str = String.valueOf(num);
(3)将基本类型转换为包装类
使用 包装类.valueOf()
int num = 123;
Integer integer = Integer.valueOf(num);
(4)将包装类转换为基本数据类型
使用包装类对象.xxxValue()
Integer i = new Integer("123");
int num = i.intValue();
(5)将String转换为包装类
使用包装类.valueOf();
String str = "123";
Integer i = Integer.valueOf(str);
(6)将包装类转化为String类型
使用包装类对象.toString()
Integer i = new Integer("123");
String str = i.toString();
6.获取int类型的最大值和最小值
(1)最大值:Integer.MAX_VALUE
(2)最小值:Integer.MIN_VALUE
7.Character包装类里面有一堆is开头的方法,专门用来判断字符的性质
1.6 正则表达式
1.6.1 元字符
\d: 匹配任何数字,等价于 [0-9]。
例如,正则表达式 \d 可以匹配 "1"、"7"、"0" 等数字字符。
\D: 匹配任何非数字字符,等价于 [^0-9]。
例如,正则表达式 \D 可以匹配 "a"、"#"、" " 等非数字字符。
\w: 匹配任何字母、数字或下划线字符,等价于 [a-zA-Z0-9_]。
例如,正则表达式 \w 可以匹配 "a"、"1"、"_" 等字母、数字或下划线。
\W: 匹配任何非字母、数字或下划线字符,等价于 [^a-zA-Z0-9_]。
例如,正则表达式 \W 可以匹配 "@"、" "、"#" 等非字母、数字或下划线字符。
\s: 匹配任何空白字符(包括空格、制表符、换行符等)。
例如,正则表达式 \s 可以匹配 " "、\t、\n 等空白字符。
\S: 匹配任何非空白字符。
例如,正则表达式 \S 可以匹配 "a"、"1"、"#" 等非空白字符
1.6.2 Pattern类和Matcher类
1.6.2.1Pattern类
1.用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式,
Java代码示例:
Pattern p=Pattern.compile("\\w+");
p.pattern();//返回 \w+
2.pattern() 返回正则表达式的字符串形式,其实就是返回Pattern.complile(String regex)的regex参数
3.Pattern有一个split(CharSequence input)方法,用于分隔字符串,并返回一个String[],我猜String.split(String regex)就是通过Pattern.split(CharSequence input)来实现的.
Java代码示例:
Pattern p=Pattern.compile("\\d+");
String[] str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa.com");
结果:str[0]="我的QQ是:" str[1]="我的电话是:" str[2]="我的邮箱是:aaa@aaa.com"
4.Pattern.matcher(String regex,CharSequence input)是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.
1.6.2.2.2 Matcher类
1.Matcher类的构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例.
Pattern类只能做一些简单的匹配操作,要想得到更强更便捷的正则匹配操作,那就需要将Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持.
Java代码示例:
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher("22bb23");
m.pattern();//返回p 也就是返回该Matcher对象是由哪个Pattern对象的创建的
2.Matcher.matches()/ Matcher.lookingAt()/ Matcher.find()
Matcher类提供三个匹配操作方法,三个方法均返回boolean类型,当匹配到时返回true,没匹配到则返回false
matches()对整个字符串进行匹配,只有整个字符串都匹配了才返回true
Java代码示例:
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher("22bb23");
m.matches();//返回false,因为bb不能被\d+匹配,导致整个字符串匹配未成功.
Matcher m2=p.matcher("2223");
m2.matches();//返回true,因为\d+匹配到了整个字符串
1.6.3 String类对正则表达式的支持
String的API中有几个方法支持正则表达式:
matches() 匹配正则表达式
slipt() 根据正则表达式拆分字符串
replaceAll() 将满足正则表达式的部分已给定字符串替换缓冲字符串StringBuffer和StringBuilder