Java字符串处理
发布日期:2021-04-30 21:06:48 浏览次数:95 分类:精选文章

本文共 4712 字,大约阅读时间需要 15 分钟。

Java 字符串操作指南

1 字符串截取

1.1 substring(int beginIndex)

substring(beginIndex) 方法用于从指定索引位置开始截取字符串,直到结尾。这个方法非常有用,适用于提取字符串的后部部分。

示例:

String str = "Java";
System.out.println(str.substring(2)); // 输出:vas

1.2 substring(int beginIndex, int endIndex)

substring(beginIndex, endIndex) 方法用于截取从 beginIndexendIndex 之间的字符,包括起始索引字符,不包括结束索引字符。

示例:

String str = "Java";
System.out.println(str.substring(0, 1)); // 输出:J
System.out.println(str.substring(1, 4)); // 输出:ava

2 字符串分割

2.1 str.split(String sign)

split(sign) 方法用于将字符串按指定分隔符分割成数组。默认情况下,会将所有分割符后面的部分都分割出来。

示例:

String family = "Grandpa,grandma,Dad,Mum,Baby";
String[] arr1 = family.split(","); // 输出:["Grandpa", "grandma", "Dad", "Mum", "Baby"]

2.2 str.split(String sign, int limit)

split(sign, limit) 方法与 split(sign) 类似,但允许指定分割后的最大元素数量。

示例:

String family = "Grandpa,grandma,Dad,Mum,Baby";
String[] arr2 = family.split(",", 3); // 输出:["Grandpa,grandma", "Dad", "Mum", "Baby"]

3 字符串比较

3.1 equals()

equals() 方法用于比较两个字符串是否完全相同。它会逐个字符比较,直到找到不同字符或末尾。

示例:

String str1 = "abc";
String str2 = new String("abc");
System.out.println(str1.equals(str2)); // 输出:true

3.2 equalsIgnoreCase()

equalsIgnoreCase() 方法与 equals() 功能类似,但比较时不区分大小写。

示例:

String str1 = "abc";
String str3 = "ABC";
System.out.println(str1.equalsIgnoreCase(str3)); // 输出:true

3.3 equals()与==

equals() 方法比较字符串内容,而 == 运算符比较的是对象引用是否相同。因此,使用 equals() 比较字符串内容更合适。

示例:

String s1 = "java";
String s2 = new String(s1);
System.out.println(s1.equals(s2)); // 输出:true
System.out.println(s1 == s2); // 输出:false

3.4 compareTo()

compareTo() 方法用于比较两个字符串的字典序,返回值为正、零或负,表示前一个字符串在字典序中大于、小于或等于后一个字符串。

示例:

String str = "J";
String str1 = "j";
System.out.println(str.compareTo(str1)); // 输出:-32
System.out.println(str1.compareTo(str)); // 输出:32

4 String与int互相转换

4.1 String到int

可以使用 Integer.parseInt(str)Integer.valueOf(str).intValue() 将字符串转换为整数。

示例:

String str = "123";
System.out.println(Integer.parseInt(str)); // 输出:123
System.out.println(Integer.valueOf(str).intValue()); // 输出:123

4.2 int到String

可以使用 String.valueOf(i)Integer.toString(i)"" + i 将整数转换为字符串。

示例:

int num = 10;
System.out.println(String.valueOf(num)); // 输出:10
System.out.println(Integer.toString(num)); // 输出:10
String str3 = num + ""; // 输出:10

5 去除字符串中的空格

trim() 方法用于去除字符串开头和结尾的空白字符。

示例:

String str = " hello ";
System.out.println(str.length()); // 输出:7
System.out.println(str.trim().length()); // 输出:5

6 字符串大小写转换

6.1 toLowerCase()

toLowerCase() 方法用于将字符串中的所有字母转换为小写。

示例:

String en = "Snow White";
System.out.println(en.toLowerCase()); // 输出:snow white

6.2 toUpperCase()

toUpperCase() 方法用于将字符串中的所有字母转换为大写。

示例:

String en = "Snow White";
System.out.println(en.toUpperCase()); // 输出:SNOW WHITE

7 字符串替换

7.1 replace()

replace(old, new) 方法用于将字符串中的指定字符替换为新的字符。

示例:

String words = "hello java";
System.out.println(words.replace("l", "D")); // 输出:heDDo java

7.2 replaceFirst()

replaceFirst(pattern, replacement) 方法用于将字符串中的第一个匹配项替换为新的字符。

示例:

String words = "hello Dad,hello Mum";
String newStr = words.replaceFirst("hello", "你好 ");
System.out.println(newStr); // 输出:你好 Dad,hello Mum

7.3 replaceAll()

replaceAll(pattern, replacement) 方法用于将字符串中的所有匹配项替换为新的字符。

示例:

String words = "hello Dad,hello Mum";
String newStr = words.replaceAll("hello", "你好 ");
System.out.println(newStr); // 输出:你好 Dad,你好 Mum

8 查找字符串

8.1 indexOf()

indexOf(char) 方法用于返回指定字符在字符串中的首次出现位置,返回 -1 表示没有找到。

示例:

String s = "Hello Java";
System.out.println(s.indexOf('v')); // 输出:8
System.out.println(s.indexOf('m')); // 输出:-1

8.2 lastIndexOf()

lastIndexOf(char) 方法用于返回指定字符在字符串中的最后一次出现位置,返回 -1 表示没有找到。

示例:

String words = "Friday,Sunday";
System.out.println(words.lastIndexOf("day")); // 输出:10

9 StringBuffer 类

9.1 创建StringBuffer

StringBuffer() 创建一个初始容量为 16 的空缓冲区。StringBuffer(int length) 创建指定长度的缓冲区。StringBuffer(String str) 创建一个初始容量为 16 + str.length() 的缓冲区。

示例:

StringBuffer str1 = new StringBuffer(); // 容量 16
StringBuffer str2 = new StringBuffer(5); // 容量 5
StringBuffer str3 = new StringBuffer("我爱java"); // 容量 22
System.out.println(str1.capacity()); // 输出:16
System.out.println(str2.capacity()); // 输出:5
System.out.println(str3.capacity()); // 输出:22

9.2 追加字符串

append(String) 方法用于在缓冲区中追加指定字符串。

示例:

StringBuffer buffer = new StringBuffer("hello,");
buffer.append("World!"); // 输出:hello,World!

9.3 替换字符

setCharAt(int index, char ch) 方法用于在指定位置替换字符。

示例:

StringBuffer sb = new StringBuffer("hello");
sb.setCharAt(1, 'E'); // 输出:hEllo

9.4 删除字符

deleteCharAt(int index) 方法用于删除指定位置的字符。

示例:

StringBuffer sb = new StringBuffer("She");
sb.deleteCharAt(2); // 输出:Sh

10 String、StringBuffer 和 StringBuilder 类的区别

  • 线程安全

    • StringBuffer 线程安全,适合多线程环境。
    • StringBuilder 线程不安全,效率更高。
  • 速度

    • 一般情况下,速度从快到慢为:StringBuilder > StringBuffer > String
  • 使用场景

    • 对于少量数据操作,直接使用 String 更高效。
    • 对于单线程操作大量数据,使用 StringBuilder 更高效。
    • 对于多线程操作大量数据,使用 StringBuffer 更安全。
上一篇:IDEA那些好用的操作,提高工作效率必备,Java开发必会
下一篇:Chrome Autofill 删除规则

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2026年06月08日 11时46分17秒