String常用类
1693字约6分钟
2025-09-23
String常用方法
// 判断两个字符串的内容是否相等,区分大小写
equals
// 判断两个字符串的内容是否相等,不区分大小写
equalsIgnoreCase
// 获取字符串的长度
length
// 获取字符在字符串中第一次出现的索引,索引从0开始,如果找不到则返回-1
indexOf
// 获取字符在字符串中最后一次出现的索引,索引从0开始,如果找不到则返回-1
lastIndexOf
// 获取字符串中指定范围内的字符
substring
// 分割字符串
split
// 提取字符串中对应下标的字符
charAt
// 将字符串中的所有字母转换为大写
toUpperCase
// 将字符串中的所有字母转换为小写
toLowerCase
// 用来拼接字符串
concat
// 比较两个字符串的大小
compareTo
// 转换成字符数组
toCharArray
// 将查找的字符串替换成别的字符串
replace
// 使用指定的格式字符串和参数返回格式化字符串
format
// 返回一个字符串,其值为此字符串,并删除任何前导和尾随空格
trim
equals
equals
判断两个字符串的内容是否相等,区分大小写
String n1 = "Java";
String n2 = "java";
// 判断两个字符串的内容是否相等,区分大小写
System.out.println(n1.equals(n2));
// false
equalsIgnoreCase
equalsIgnoreCase
判断两个字符串的内容是否相等,不区分大小写
String n1 = "Java";
String n2 = "java";
// 判断两个字符串的内容是否相等,不区分大小写
System.out.println(n1.equalsIgnoreCase(n2));
// true
length
length
获取字符串的长度
String n1 = "Java";
// 获取字符串的长度
int num = n1.length();
System.out.println(num);
// 4
String[] b = {"a", "b", "c"};
int a1 = b.length;
int a2 = b[0].length();
b[0].length()
→ 操作数组中的元素,获取该元素的 "长度"(通过方法定义)b.length
→ 操作数组本身,获取数组中元素的总个数
indexOf
indexOf
获取字符在字符串中第一次出现的索引,索引从0
开始,如果找不到则返回 -1
String n1 = "Java";
// 获取字符在字符串中第一次出现的索引,索引从0开始,如果找不到则返回-1
System.out.println(n1.indexOf("v"));
// 2
// 查找的字符串为一个整体,Ja在Java中第一次出现的下标为 0
System.out.println(n1.indexOf("Ja"));
// 0
lastIndexOf
lastIndexOf
获取字符在字符串中最后一次出现的索引,索引从0
开始,如果找不到则返回-1
String n1 = "Javav";
// 获取字符在字符串中最后一次出现的索引,索引从0开始,如果找不到则返回 -1
System.out.println(n1.lastIndexOf(1));
// -1
// 查找的字符串为一个整体,av在Javav中最后一次出现的下标为 3
System.out.println(n1.lastIndexOf("av"));
substring
substring
获取字符串中指定范围内的字符
String n1 = "Java";
// 获取字符串中指定范围内的字符
System.out.println(n1.substring(1));
// ava
// 从下标为1的字符开始取值,截取到下标为 3 - 1 = 2 的位置
System.out.println(n1.substring(1,3));
// av
split
split
分割字符串
// 有特殊字符的时候需要加入转移符 \
String s1 = "张三,李四,王麻子";
String s2 = "E:\\dd\\ee";
// 以 ,为标准为s1进行分割,相当于把 ,换成了换行
String[] sp1 = s1.split(",");
// 以 \\ 为标准为s1进行分割,相当于把 \\ 换成了换行
// 这里是所以是\\\\,是因为转义字符的原因,转义之后就是\\
String[] sp2 = s2.split("\\\\");
for (int i = 0; i < sp1.length; i++) {
System.out.println(sp1[i]);
/*
* 张三
李四
王麻子
* */
}
for (int i = 0; i < sp2.length; i++) {
System.out.println(sp2[i]);
/*
* E:
dd
ee
* */
}
charAt
charAt
提取字符串中对应下标的字符
String n1 = "Java";
System.out.println("charAt:" + n1.charAt(2));
// v
toUpperCase
toUpperCase
将字符串中的所有字母转换为大写
String n1 = "Java";
System.out.println(n1.toUpperCase());
// JAVA
toLowerCase
toLowerCase
将字符串中的所有字母转换为小写
String n1 = "Java";
System.out.println(n1.toLowerCase());
// java
concat
concat
用来拼接字符串
String n1 = "Java";
System.out.println(n1.concat("张三").concat("李四").concat("王麻子"));
// Java张三李四王麻子
compareTo
compareTo
比较两个字符串的大小
/*
* 如果两个字符串的长度相同的情况下
* 1.从第一个字符开始比较,如果a和b的第一个字符相同,那就比较下一组字符;
* 如果不相同,那么结果就是a比较字符的Unicode码减去b比较字符的Unicode码
*
* 如果两个字符串的长度不相同
* 1.从第一个字符开始比较,如果a和b的第一个字符相同,那就比较下一组字符;
* 如果不相同,那么结果就是a比较字符的Unicode码减去b比较字符的Unicode码
* 2.如果a和b的所有字符都相同,但是b要比a多2个字符
* 那么结果就是a字符串的长度减去b字符串的长度
*
* 如果两个字符串里的字符都相同,则结果为0
* */
// asxls的Unicode码: asxls
String a = "asxls";
// jsxlsa的Unicode码:jsxlsa
String b = "jsxlsa";
System.out.println(a.compareTo(b));
// -9
toCharArray
toCharArray
转换成字符数组
String n1 = "Java";
char[] arr = n1.toCharArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
/*
* J
a
v
a
* */
}
replace
replace
将查找的字符串替换成别的字符串
String n3 = "张三 李四 王麻子 李四";
System.out.println(n3.replace("李四", "jack"));
// 张三 jack 王麻子 jack
// replace返回的是新的并且是替换好的String对象,所以对原对象没有影响
System.out.println(n3);
// 张三 李四 王麻子 李四
format
format
使用指定的格式字符串和参数返回格式化字符串
/*
* %s, %d, %.2f, %c 表示的是占位符
* %s 表示字符串
* %d 表示整数类型
* %.2f 表示小数类型,只会保留小数点后两位,并且会进行四舍五入处理
* %c 表示字符
* */
String name = "张三";
int age = 28;
double score = 77.759;
char gender = '男';
String s0 = "我的名字叫%s, 年龄%d岁, 分数%.2f, 性别%c";
// 变量名的顺序和占位符的顺序要一致
// 不能将整数类型去对应字符串的占位符
String ss = String.format(s0, name, age, score, gender);
System.out.println(ss);
// 我的名字叫张三, 年龄28岁, 分数77.76, 性别男
String s1 = String.format("我的名字叫%s, 年龄%d岁, 分数%.2f, 性别%c", name, age, score, gender);
System.out.println(s1);
// 我的名字叫张三, 年龄28岁, 分数77.76, 性别男
trim
trim
返回一个字符串,其值为此字符串,并删除任何前导和尾随空格
String name = " 张三";
String name1 = "ni" + name.trim();
System.out.println(name1);
// ni张三
String name2 = "ni" + name;
System.out.println(name2);
// ni 张三