文章目录
String类与StringBuffer类
String
初始化
String 变量名 = new String(字符串);
String 变量名 = "";
String的一个重要特点就是字符串不可变。因为内部是private final char[]
如果更新替换本质上是重建String
常用操作
比较
s1.equals(s2)
Boolean类型返回true
false
如果用==
本质上是对内存地址进行比较,但不一定就是字符串是相同的
忽略大小写比较:equalsIgnoreCase()
子串
"Hello".contains("ll"); // true
"Hello".indexOf("l"); // 2
"Hello".lastIndexOf("l"); // 3
"Hello".startsWith("He"); // true
"Hello".endsWith("lo"); // true
去除空白字符
trim()
可以移除字符串首尾空白字符,包括空格
,\t
,\r
,\n
;本质上返回一个新的字符串
strip()
类似中文的空格字符\u3000
也会被移除
isEmpty()
和isBlank()
来判断字符串是否为空和空白字符串
替换
s.replace(sa, sb)
s串中所有的sa子串都会被替换为sb
s.replace(re, "")
支持正则
转换
s.toUpperCase()
s.toLowerCase()
s.toCharArray()
分隔字符串
s.split(re)
根据正则表达式来分隔字符串
截取
s.substring(n, m)
从第n+1个字符截取到第m个字符,默认到尾
拼接
拼接字符串使用静态方法join()
,它用指定的字符串连接字符串数组:
String[] arr = {"A", "B", "C"};
String s = String.join("***", arr); // "A***B***C"
格式化
字符串提供了formatted()
方法和format()
静态方法,可以传入其他参数,替换占位符,然后生成新的字符串:
public class Main {
public static void main(String[] args) {
String s = "Hi %s, your score is %d!";
System.out.println(s.formatted("Alice", 80));
System.out.println(String.format("Hi %s, your score is %.2f!", "Bob", 59.5));
}
}
类型转换
其他转字符串
valueOf()
String.valueOf(123); // "123"
String.valueOf(45.67); // "45.67"
String.valueOf(true); // "true"
String.valueOf(new Object()); // 类似java.lang.Object@636be97c
字符串转其他
Integer.parseInt("ff", 16); // 按十六进制转换,255
Boolean.parseBoolean("true"); // true
Boolean.parseBoolean("FALSE"); // false
...
StringBuffer
StringBuffer相当于一个容器,对其操作时只会对其进行操作,而不会产生新的StringBuffer对象
基本方法
序号 | 方法描述 |
---|---|
1 | public StringBuffer append(String s) 将指定的字符串追加到此字符序列。 |
2 | public StringBuffer reverse() 将此字符序列用其反转形式取代。 |
3 | public delete(int start, int end) 移除此序列的子字符串中的字符。 |
4 | public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。 |
5 | insert(int offset, String str) 将 str 参数的字符串插入此序列中。 |
6 | replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。 |
StringBuilder
用法是与StringBuffer相同的,有问题就是它不是线程安全的,但是速度很快
System类
arraycopy(src, src_start, dest, dest_start, length)
src原数组,dest目标数组;注意最后一个拷贝的元素长度参数不能超过两个数组的长度
getProperties()
返回一个Properties对象,封装了系统的所有属性,以键值对形式存在
currentTimeMillis()
返回时间戳
Runtime类
getRuntime()
返回一个Runtime对象,封装了Java虚拟机进程,可以通过其来获取当前虚拟机的相关信息;再调用这个对象的相关方法就能获取到当前虚拟机的一些性能信息
exec()
执行dos命令
Math
相关数学函数
Random
构造方法
Radom()
Random(long seed)
生成方法
类型 next类型名();
特殊:int nextInt(int n); 生成[0, n)之间的随机数