Java 中的 String 类是不可变的字符序列,提供了丰富的内置方法用于字符串操作。掌握这些方法对于日常开发非常重要。


一、字符串创建

String s1 = "Hello World";      // 直接赋值
String s2 = new String("Java"); // new 关键字创建

二、常用 String 方法

1. 获取长度

int len = s1.length();  // 返回字符串长度

2. 字符获取

char ch = s1.charAt(0); // 获取指定索引处字符,索引从0开始

3. 字符串比较

s1.equals(s2);          // 内容比较,区分大小写
s1.equalsIgnoreCase(s2);// 忽略大小写比较

4. 查找子串

int index = s1.indexOf("World");    // 返回子串首次出现位置,找不到返回-1
int lastIndex = s1.lastIndexOf("l"); // 返回子串最后一次出现位置

5. 字符串截取

String sub1 = s1.substring(6);      // 从索引6开始截取到末尾
String sub2 = s1.substring(0, 5);   // 截取索引0到4的字符(不包含5)

6. 字符串拼接

String s3 = s1.concat("!!!");      // 连接字符串
String s4 = s1 + "!!!";            // 使用 + 连接更常用

7. 字符串替换

String replaced = s1.replace('l', 'x');           // 替换所有字符'l'为'x'
String replacedStr = s1.replace("World", "Java"); // 替换子串

8. 去除空白

String s = "  hello  ";
String trimmed = s.trim();          // 去除首尾空白

9. 字符串分割

String[] parts = "a,b,c".split(","); // 按逗号分割,返回字符串数组

10. 转换大小写

String upper = s1.toUpperCase();   // 转大写
String lower = s1.toLowerCase();   // 转小写

11. 判断开始和结束

boolean starts = s1.startsWith("Hello"); // 是否以"Hello"开头
boolean ends = s1.endsWith("World");     // 是否以"World"结尾

12. 判断是否包含子串

boolean contains = s1.contains("lo Wo");  // 判断是否包含该子串

三、字符串与其他类型转换

int number = Integer.parseInt("123");       // 字符串转整型
String strNum = String.valueOf(456);         // 其他类型转字符串

四、字符串比较的特殊注意

  • 用 == 比较字符串变量时比较的是引用地址,非内容。
  • 用 equals() 方法比较字符串内容。

五、StringBuilder 和 StringBuffer

  • StringBuilder 和 StringBuffer 是可变字符串类,适合频繁修改字符串的场景。
  • 速度上 StringBuilder > StringBuffer(后者线程安全)。

示例:

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString());  // 输出 Hello World

六、总结表格

方法功能说明示例
length()字符串长度"abc".length() → 3
charAt(int index)返回指定位置的字符"abc".charAt(1) → 'b'
equals(String s)内容比较"abc".equals("abc") → true
indexOf(String s)查找子串第一次出现位置"abcabc".indexOf("bc") → 1
substring(int start)截取子串"abcdef".substring(2) → "cdef"
concat(String s)拼接字符串"abc".concat("def") → "abcdef"
replace()替换字符或字符串"hello".replace('l','p') → "heppo"
trim()去除首尾空白" abc ".trim() → "abc"
split(String regex)分割字符串"a,b,c".split(",") → ["a","b","c"]
toUpperCase()转大写"abc".toUpperCase() → "ABC"
toLowerCase()转小写"ABC".toLowerCase() → "abc"
startsWith()判断开头"abc".startsWith("a") → true
endsWith()判断结尾"abc".endsWith("c") → true
contains()判断包含"abc".contains("b") → true

如果你想要,我可以帮你准备:

  • Java字符串正则表达式使用
  • StringBuilder/StringBuffer进阶用法
  • Java 11新增的字符串方法介绍(如isBlank()等)

随时告诉我!