Java 常用类库
字符串
——String类
——字符串的定义:
String str1="abc"; String str2=new String("abc");//创建了两个对象 System.out.println(str1==str2); //false
——String对象内存
——String常用操作API
length:获取字符串长度
charAt:获取指定位置的字符
indexOf / lastIndexOf:判断字符串出现的位置compareTo:按字典顺序比较两个字符串的大小关系substring:截取字符串
split:根据给定的子串将字符串分割,返回一个String数组replace:使用指定字符替换字符串中的指定内容内容toCharArray:将此字符串转换为一个新的字符数组contains:判断是否包含指定子字符串
equals :比较字符串内容是否相同
trim:去除两端空白
toUpperCase / toLowerCase:转换大小写
format:格式化输出
实现
//字符串常用操作方法
String str8 = "I LOVES China";
System.out.println("字符串长度:"+str8.length());
System.out.println("获取指定位置的字符:"+str8.charAt(5));
System.out.println("字符串C出现的位置:"+str8.indexOf('C'));
System.out.println("字符串截取0-6:"+str8.substring(0, 6));//substring包含开始位置、不包含结束位置字符
System.out.println("字符串根据空格进行分割:"+Arrays.toString(str8.split(" ")));
字符串长度:13
获取指定位置的字符:E
字符串C出现的位置:8
字符串截取0-6:I LOVE
字符串根据空格进行分割:[I, LOVES, China]
——可变字符串(StringBuffer&StringBuilder)
常用API
append将指定的参数以字符串形式追加到序列尾部
insert参数以字符串形式追加字符串到指定的位置
delete删除字符串内容
reverse反转字符串
实现
//可变字符串StringBuilder、StringBuffer
StringBuilder builder = new StringBuilder("我是可变字符串");
builder.append("OkOK");
我是可变字符串OkOK
正则表达式
正则中常用的元字符
——\ba\w*\b匹配以字母a开头的单词
先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
——\d+匹配1个或更多连续的数字
这里的+匹配重复1次或更多次。
——\b\w{6}\b 匹配刚好6个字符的单词
——如果不使用^和$的话,对于\d{5,12}而言,使用这样的方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
i | 忽略大小写 |
正则中常用的限定符
——Windows\d+
匹配Windows后面跟1个或更多数字
如Windows8、Windows2000
——^\d{5,12}$
匹配QQ号 只有5-12位数字
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
String regex = "\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher ma = pattern.matcher("111115555");
System.out.println("第一种匹配方式:"+ma.matches());
//第二种匹配方式
System.out.println("第二种匹配方式:"+Pattern.matches("\\d+", "44545454"));
日期时间处理
Date类
——获取当前时间
Date date = new Date();
System.out.println("当前时间是:"+date);
Calendar类
——获取当前时间
Calendar cal = Calendar.getInstance();
System.out.println("当前时间是:"+cal);
System.out.println("当前是年份:"+cal.get(Calendar.YEAR));
System.out.println("当前是月份:"+(cal.get(Calendar.MONTH)+1));
注意:Calendar 月份从0-11表示的是1-12月
SimpleDateFormat类
——日期格式化类
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//HH是24小时制的,hh是12小时制的
sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
——日期类转字符串:format()
String time = "2022年06月06日 12:00:00";
sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
System.out.println("日期类格式化:"+sdf.format(date));
——字符串转日期对象:parse()
System.out.println("转化成日期的结果:"+sdf.parse(time));
Math类(静态的方法)
double f = 10.4;
int a = -10;
System.out.println("a的绝对值:"+Math.abs(a));
System.out.println("f向上取整:"+Math.ceil(f));
System.out.println("f向下取整:"+Math.floor(f));
System.out.println("f四舍五入:"+Math.round(f));
double dom = Math.random()*10;//生成10以内的随机数不包括10
System.out.println(dom);
a的绝对值:10
f向上取整:11.0
f向下取整:10.0
f四舍五入:10
6.104530751466867