【JavaSE】String类中常用的字符串方法(超全)

 

目录


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指定索引处的值。 指数范围为0length() - 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 – 要替换第一个匹配的字符串

作用

  1. 从原始字符串的开头开始,搜索并找到第一个与正则表达式匹配的子串。
  2. 将该匹配项替换为指定的新字符串。
  3. 返回替换后的新字符串。

代码示例:

String str = "abcd abcd abcd";
String ret1 = str.replaceFirst("ab","OO");
System.out.println(ret1);

输出结果:

 

参数 

regex 参数是一个正则表达式,用于匹配原始字符串中的子串。

replacement 参数是要替换匹配项的新字符串。 

作用 

  1. 从原始字符串的开头开始,搜索并找到所有与正则表达式匹配的子串。
  2. 将每个匹配项都替换为指定的新字符串。
  3. 返回替换后的新字符串。

代码示例:

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. 从原始字符串中找到所有与分隔符匹配的子串,并根据分隔符将原始字符串分割成多个子串。
  2. 将这些子串存储在一个字符串数组中。
  3. 返回该字符串数组。

 代码示例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:

  作用

  1. 从原始字符串中找到与正则表达式匹配的子串。
  2. 将原始字符串分割成多个子串,每个子串都保存在数组中。
  3. 只保存前limit-1个子串,如果limit为负数或为零,则不限制分割数。
  4. 将剩余的未分割的部分作为数组的最后一个元素保存。

 代码示例:

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);

输出结果:

 注意事项:

  1. 索引从0开始
  2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标

9.其他操作方法

 代码示例:

String str = " abcde fg hijk ";
System.out.println(str);
System.out.println(str.trim());

 输出结果:

     文章到这里就结束啦,如果有什么地方写得还不到位欢迎在评论区提出来,如果觉得有收获的话记得给文章三连支持哦~~🤣🤣

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年9月1日
下一篇 2023年9月1日

相关推荐