详细的 Java String 类教程
·
Java String 类详解
String 是 Java 中最常用的类之一,用于表示和操作字符串。字符串在 Java 中是不可变的(immutable),这意味着一旦创建,其内容就不能被修改。
一、创建字符串
- 字面量创建(推荐)
String str1 = "Hello World";
这种方式会检查字符串常量池,避免重复创建。
- 构造函数创建
String str2 = new String("Hello Java");
每次都会在堆内存创建新对象。
二、字符串操作
- 长度获取
int len = str1.length(); // 返回 11
- 字符串连接
String result = str1.concat("!"); // "Hello World!"
String combined = str1 + " " + str2; // 使用 + 运算符
- 格式化字符串
String formatted = String.format("Name: %s, Age: %d", "Alice", 30);
三、常用方法
- 字符访问
char ch = str1.charAt(0); // 'H'
- 子字符串
String sub = str1.substring(6); // "World"
String subRange = str1.substring(0, 5); // "Hello"
- 大小写转换
String upper = str1.toUpperCase(); // "HELLO WORLD"
String lower = str1.toLowerCase(); // "hello world"
- 比较操作
boolean isEqual = str1.equals("Hello World"); // true
boolean isIgnoreCase = str1.equalsIgnoreCase("hello world"); // true
int compareResult = str1.compareTo("Hello"); // 正值
四、不可变性原理
当修改字符串时,实际是创建新对象:
String original = "Java";
original = original + "Script"; // 创建新对象"JavaScript"
五、字符串池(String Pool)
JVM 维护的字符串常量池优化内存使用:
String a = "abc"; // 放入池中
String b = "abc"; // 复用池中对象
System.out.println(a == b); // true
String c = new String("abc"); // 新建对象
System.out.println(a == c); // false
六、性能优化
频繁修改字符串时使用 StringBuilder:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("World");
String result = sb.toString(); // 高效拼接
七、正则表达式
使用 matches() 方法进行模式匹配:
String email = "user@example.com";
boolean isValid = email.matches("\\w+@\\w+\\.\\w+"); // 简单验证
八、编码转换
处理不同字符集:
byte[] utf8Bytes = str1.getBytes("UTF-8");
String decoded = new String(utf8Bytes, "UTF-8");
总结
String 类的核心特性:
- 不可变性确保线程安全
- 字符串池机制优化内存
- 提供丰富的操作方法
- 与
StringBuilder/StringBuffer配合使用提高效率
建议通过实际编码练习掌握各种方法的使用场景,特别注意字符串比较应使用 equals() 而非 == 运算符。
更多推荐

所有评论(0)