Java中String常用方法详解

目录

一、字符串创建与比较

1. String的构造方法

2. equals()与equalsIgnoreCase()

3. ==与equals()的区别

二、字符串查找与索引

1. length():获取字符串长度

2. charAt(int index):获取指定位置的字符

3. indexOf()与lastIndexOf()

4. contains():判断是否包含子串

三、字符串操作

1. substring():截取子串

2. concat()与+拼接字符串

3. replace():替换字符或子串

4. split():按正则表达式分割字符串

5. join():拼接字符串数组

四、转换与格式化

1. toUpperCase()与toLowerCase()

2. trim()与strip():去除空白

3. String.format():格式化字符串

4. valueOf():转换为字符串

五、其他实用方法

1. startsWith()与endsWith()

2. isEmpty()与isBlank()(JDK11+)

3. matches():正则匹配

六、总结


在Java编程中,String类是最常用的类之一,用于表示和操作字符串。由于其不可变性​(创建后无法修改),每次操作都会生成新的字符串对象。本文将通过代码示例详解Java中String的常用方法,帮助开发者高效处理字符串。

一、字符串创建与比较

1. String的构造方法

String str1 = "Hello"; // 直接赋值(推荐)
String str2 = new String("Hello"); // 构造方法

2. equals()equalsIgnoreCase()

  • ​比较内容是否相等​(区分大小写):
String s1 = "Java";
String s2 = "java";
System.out.println(s1.equals(s2)); // false
  • 忽略大小写比较:
System.out.println(s1.equalsIgnoreCase(s2)); // true

3. ==equals()的区别

  • ==比较对象地址,equals()比较内容:
String a = "hello";
String b = new String("hello");
System.out.println(a == b); // false(地址不同)
System.out.println(a.equals(b)); // true(内容相同)

二、字符串查找与索引

1. length():获取字符串长度

String str = "Hello";
System.out.println(str.length()); // 5

2. charAt(int index):获取指定位置的字符

System.out.println(str.charAt(1)); // 'e'

3. indexOf()lastIndexOf()

  • 查找字符或子串首次出现的索引:
String s = "Hello World";
System.out.println(s.indexOf('l')); // 2
System.out.println(s.indexOf("World")); // 6
  • 从后往前查找:
System.out.println(s.lastIndexOf('l')); // 9

4. contains():判断是否包含子串

System.out.println(s.contains("Hello")); // true

三、字符串操作

1. substring():截取子串

String str = "HelloWorld";
System.out.println(str.substring(5)); // "World"(从索引5到末尾)
System.out.println(str.substring(0, 5)); // "Hello"(索引0到4)

2. concat()+拼接字符串

String s1 = "Hello";
String s2 = s1.concat(" World"); // "Hello World"
String s3 = s1 + " Java"; // "Hello Java"

3. replace():替换字符或子串

String s = "apple";
System.out.println(s.replace('p', 'b')); // "abble"
System.out.println(s.replace("apple", "banana")); // "banana"

4. split():按正则表达式分割字符串

String data = "Java,PHP,Python";
String[] arr = data.split(","); // ["Java", "PHP", "Python"]
// 分割IP地址需转义
String ip = "192.168.1.1";
String[] nums = ip.split("\\.");

5. join():拼接字符串数组

String[] langs = {"Java", "C++", "Python"};
String joined = String.join(" | ", langs); // "Java | C++ | Python"

四、转换与格式化

1. toUpperCase()toLowerCase()

String s = "Hello";
System.out.println(s.toUpperCase()); // "HELLO"
System.out.println(s.toLowerCase()); // "hello"

2. trim()strip():去除空白

  • trim()去除首尾空格:
String s = "  Java  ";
System.out.println(s.trim()); // "Java"
  • strip()(JDK11+)支持Unicode空格:
System.out.println(s.strip()); // "Java"

3. String.format():格式化字符串

String name = "Alice";
int age = 25;
String info = String.format("Name: %s, Age: %d", name, age); 
// "Name: Alice, Age: 25"

4. valueOf():转换为字符串

int num = 123;
String str = String.valueOf(num); // "123"

五、其他实用方法

1. startsWith()endsWith()

String s = "HelloWorld";
System.out.println(s.startsWith("Hello")); // true
System.out.println(s.endsWith("ld")); // true

2. isEmpty()isBlank()(JDK11+)

String s1 = "";
String s2 = "  ";
System.out.println(s1.isEmpty()); // true
System.out.println(s2.isBlank()); // true(仅空白字符)

3. matches():正则匹配

String email = "[email protected]";
boolean isValid = email.matches("^[\\w.-]+@[\\w.-]+\\.[a-z]{2,6}$");

六、总结

Java的String类提供了丰富的方法来简化字符串操作。掌握这些方法能大幅提升开发效率,但需注意不可变性带来的性能问题,在频繁修改时建议使用StringBuilder。建议通过实际编码练习巩固这些方法的应用!

扩展思考:如何处理大量字符串拼接?何时应使用StringBuilder?欢迎在评论区讨论!

你可能感兴趣的:(java,开发语言)