目录
1.求字符串的长度
作用
返回此字符串的长度。 长度等于字符串中的数字Unicode code units 。
结果
返回该对象表示的字符序列的长度。
代码示例:
String str1 = "hello";
String str2 = "Hello world";
String str3 = "";
System.out.println(str1.length());
System.out.println(str2.length());
System.out.println(str3.length());
输出结果:
2.判断字符串是否为空
结果
当字符串长度为0的时候返回 true,否则返回 false
代码示例:
String str1 = "hello";
String str2 = "";
System.out.println(str1.isEmpty());
System.out.println(str2.isEmpty());
输出结果:
3.String对象的比较
3.1 判断字符串是否相同
作用
将此字符串与指定对象进行比较。 其结果是
true
当且仅当该参数不是null
并且是String
对象,表示相同的字符序列作为该对象。结果
true
如果给定的对象代表一个String
等效于这个字符串,false
否则
代码示例:
String str1 = "hello";
String str2 = "hello";
String str3 = "world";
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
输出结果:
3.2 比较字符串大小
作用
按字典顺序比较两个字符串。 比较是基于字符串中每个字符的Unicode值。 由该String
对象表示的字符序列按字典顺序与由参数字符串表示的字符序列进行比较。 如果String
对象按字典顺序排列在参数字符串之前,结果为负整数。 结果是一个正整数,如果String
对象按字典顺序跟随参数字符串。 如果字符串相等,结果为零; compareTo
返回0
,当equals(Object)
方法将返回true
。
结果
如果参数字符串等于此字符串,则值为0
; 一个值小于0
如果这个字符串的字典比字符串参数小; 如果此字符串的字典大小超过字符串参数,则值大于0
。
代码示例:
String str1 = "abc";
String str2 = "abc";
String str3 = "def";
System.out.println(str1.compareTo(str2));
System.out.println(str1.compareTo(str3));
输出结果:
3.3 忽略大小写比较
与compareTo方式相同,但是忽略大小写比较
代码示例:
String str1 = "hello";
String str2 = "Hello";
String str3 = "abcde";
System.out.println(str1.compareToIgnoreCase(str2));
System.out.println(str1.compareToIgnoreCase(str3));
输出结果:
4.字符串查找
字符串查找也是字符串中非常常见的操作,String类提供的常用查找的方法:
作用
返回char
指定索引处的值。 指数范围为0
至length() - 1
。 该序列的第一个char
值在索引0
,下一个索引为1
,依此类推,与数组索引一样。
代码示例:
String str1 = "hello";
System.out.println(str1.charAt(0));
System.out.println(str1.charAt(1));
System.out.println(str1.charAt(2));
System.out.println(str1.charAt(3));
System.out.println(str1.charAt(4));
输出结果:
参数只有一个的时候
作用
返回指定字符(或字符串)在字符串中第一次出现的下标。找不到返回-1。
代码示例:
String str1 = "ababcab";
int index1 = str1.indexOf("abc");
int index2 = str1.indexOf("ab");
int index3 = str1.indexOf('b');
int index4 = str1.indexOf("c");
System.out.println(index1);
System.out.println(index2);
System.out.println(index3);
System.out.println(index4);
输出结果:
有两个参数的时候
作用
以指定的下标开始搜索,返回指定字符(或字符串)第一次出现在字符串内的下标。
代码示例:
String str1 = "ababcab";
int index1 = str1.indexOf("ab",4);//从str1中下标4位置开始查找
int index2 = str1.indexOf('b',2); //从str1中下标2位置开始查找
System.out.println(index1);
System.out.println(index2);
输出结果:
参数只有一个的时候
作用
从后往前找,返回指定字符(或字符串)第一次出现的位置,没有返回-1
有两个参数的时候
作用
从fromIndex位置开始找,从后往前找指定字符(或字符串)第一次出现的位置,没有返 回-1
代码示例:
String str1 = "ababcababcd";
int index1 = str1.lastIndexOf("abc");
int index2 = str1.lastIndexOf("abc",5); //从5位置倒着往回找
int index3 = str1.lastIndexOf('c');
int index4 = str1.lastIndexOf('c',5); //从5位置倒着往回找
System.out.println(index1);
System.out.println(index2);
System.out.println(index3);
System.out.println(index4);
输出结果:
5.转化
5.1 数值和字符串转化
5.1.1 数字转字符串 valueof
valueOf的部分重载方法
这些方法都是将数字转化成字符串。
代码示例:
String str1 = String.valueOf(1234);
String str2 = String.valueOf(3.14);
System.out.println(str1);
System.out.println(str2);
输出结果:
5.1.2 valueOf的其他用法
使用一:
作用
返回 Object
参数的字符串形式。
使用二:
作用
返回将char型的字符数组转化为字符串后的形式
使用三:
作用
如果参数为true
,则返回等于"true"
的字符串; 否则,等于一个字符串"false"
返回。
使用四:
作用
返回 char
参数的字符串形式。
这些方法和数字转成字符串的方法类似,就不用代码进行演示了。
5.1.3 字符串转数字
代码示例:
int data1 = Integer.parseInt("1234");
double data2 = Double.parseDouble("12.34");
System.out.println(data1);
System.out.println(data2);
输出结果:
5.2 大小写转换
小写转大写
代码示例:
String s1 = "hello";
String s2 = "Hello";
String ret1 = s1.toUpperCase();
String ret2 = s2.toUpperCase();
System.out.println(ret1);
System.out.println(ret2);
输出结果:
大写转小写
代码示例:
String s1 = "HELLO";
String s2 = "Hello";
String ret1 = s1.toLowerCase();
String ret2 = s2.toLowerCase();
System.out.println(ret1);
System.out.println(ret2);
输出结果:
5.3 字符数组转字符串
代码示例:
char[] array1 = {'a','b','c'};
String str1 = new String(array1);
System.out.println(str1);
输出结果:
5.4 字符串转数组
作用
将字符串转换为新的字符数组。
代码示例:
String s1 = "hello";
char[] array = s1.toCharArray();
System.out.println(Arrays.toString(array));
输出结果:
5.5 格式化
使用指定的格式字符串和参数返回格式化的字符串。
代码示例:
String str = String.format("%d-%d-%d",2023,8,7);
System.out.println(str);
输出结果:
6.字符串替换
使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下:
参数
regex
– 要匹配此字符串的正则表达式
replacement
– 要替换第一个匹配的字符串
作用
- 从原始字符串的开头开始,搜索并找到第一个与正则表达式匹配的子串。
- 将该匹配项替换为指定的新字符串。
- 返回替换后的新字符串。
代码示例:
String str = "abcd abcd abcd";
String ret1 = str.replaceFirst("ab","OO");
System.out.println(ret1);
输出结果:
参数
regex
参数是一个正则表达式,用于匹配原始字符串中的子串。
replacement
参数是要替换匹配项的新字符串。
作用
- 从原始字符串的开头开始,搜索并找到所有与正则表达式匹配的子串。
- 将每个匹配项都替换为指定的新字符串。
- 返回替换后的新字符串。
代码示例:
String str = "abcd abcd abcd";
String ret1 = str.replaceAll("ab","OO");
System.out.println(ret1);
输出结果:
需要注意的是,replaceAll
方法使用的是正则表达式进行匹配,因此在使用时需要注意正则表达式的语法和特殊字符的转义。如果不需要使用正则表达式进行匹配,可以考虑使用replace
方法来进行简单的字符串替换。
重载1
作用
通过用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串。
重载2
将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。 替换从字符串开始到结束,例如,在字符串“aaa”中用“b”替换“aa”将导致“ba”而不是“ab”。
参数
target
– 要替换的char值序列
replacement
– char值的替换顺序
代码示例:
String str = "abcd abcd abcd";
String ret1 = str.replace("ab","OO");
String ret2 = str.replace('a','A');
System.out.println(ret1);
System.out.println(ret2);
输出结果:
7.字符串拆分
可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。 可用方法如下:
重载方法1:
作用
- 从原始字符串中找到所有与分隔符匹配的子串,并根据分隔符将原始字符串分割成多个子串。
- 将这些子串存储在一个字符串数组中。
- 返回该字符串数组。
代码示例1:
String str = "hello abc world";
String[] ret = str.split(" ");
for (int i = 0; i < ret.length; i++) {
System.out.println(ret[i]);
}
输出结果1:
代码示例2:拆分IP地址
String str = "192.168.1.1";
String[] ret = str.split("\\.");
for (int i = 0; i < ret.length; i++) {
System.out.println(ret[i]);
}
输出结果2:
代码示例:
String str = "name=zhangsan&age=10";
String[] ret = str.split("=|&");//用=和&分割
for (int i = 0; i < ret.length; i++) {
System.out.println(ret[i]);
}
输出结果3
注意事项:
1. 字符”|”,”*”,”+”都得加上转义字符,前面加上 “\\” .
2. 而如果是 “\\” ,那么就得写成 “\\\\” .
3. 如果一个字符串中有多个分隔符,可以用”|”作为连字符.
代码示例3: 多次拆分
结果和上面输出结果3相似。
重载方法2:
作用
- 从原始字符串中找到与正则表达式匹配的子串。
- 将原始字符串分割成多个子串,每个子串都保存在数组中。
- 只保存前
limit-1
个子串,如果limit
为负数或为零,则不限制分割数。 - 将剩余的未分割的部分作为数组的最后一个元素保存。
代码示例:
String str = "hello abc world";
String[] ret = str.split(" ",2);//限制分割组数为2组
for (int i = 0; i < ret.length; i++) {
System.out.println(ret[i]);
}
输出结果:
8.字符串截取
从一个完整的字符串之中截取出部分内容。可用方法如下:
代码示例:
String str = "abcdefg";
String ret1 = str.substring(0,3); //截取下标0~2字符串
String ret2 = str.substring(3); //截取下标3以后的字符串
System.out.println(ret1);
System.out.println(ret2);
输出结果:
注意事项:
- 索引从0开始
- 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标
9.其他操作方法
代码示例:
String str = " abcde fg hijk ";
System.out.println(str);
System.out.println(str.trim());
输出结果:
文章到这里就结束啦,如果有什么地方写得还不到位欢迎在评论区提出来,如果觉得有收获的话记得给文章三连支持哦~~🤣🤣
文章出处登录后可见!