Java 字符串

Java 字符串基础

Java 字符串是java.lang.String类的对象,用于存储和操作文本数据。字符串在 Java 中是不可变的,任何修改操作都会生成新的字符串对象。

String str1 = "Hello";
String str2 = new String("World");
System.out.println(str1 + " " + str2); // 输出: Hello World

字符串创建方式

  1. 直接赋值:使用双引号创建字符串,JVM 会检查字符串常量池是否存在相同内容,避免重复创建。

    String s1 = "Java";
    String s2 = "Java"; // 复用常量池中的"Java"
    System.out.println(s1 == s2); // true
    

  2. 构造函数:通过new关键字创建新对象,每次都会在堆内存中分配新空间。

    String s3 = new String("Java");
    String s4 = new String("Java");
    System.out.println(s3 == s4); // false
    

字符串常用方法

  1. 长度与空值检查

    String text = "Hello";
    System.out.println(text.length()); // 5
    System.out.println(text.isEmpty()); // false
    

  2. 拼接与格式化

    String joined = text.concat(" World"); // "Hello World"
    String formatted = String.format("Value: %d", 100); // "Value: 100"
    

  3. 子串与分割

    String sub = text.substring(1, 3); // "el"
    String[] parts = "A,B,C".split(","); // ["A", "B", "C"]
    

  4. 查找与替换

    System.out.println(text.indexOf("e")); // 1
    String replaced = text.replace("l", "x"); // "Hexxo"
    

字符串不可变性

修改字符串会生成新对象,原始对象不变。频繁修改时应使用StringBuilderStringBuffer

String original = "Java";
String modified = original + "Script"; // 新建对象
System.out.println(original); // "Java" (未改变)

StringBuilder 与 StringBuffer

  1. StringBuilder:非线程安全,性能更高。

    StringBuilder sb = new StringBuilder();
    sb.append("Java");
    sb.append(" is");
    sb.append(" fast");
    System.out.println(sb.toString()); // "Java is fast"
    

  2. StringBuffer:线程安全,同步方法保证线程安全。

    StringBuffer buffer = new StringBuffer();
    buffer.append("Thread");
    buffer.append("Safe");
    

字符串比较

避免使用==比较内容,应使用equals()equalsIgnoreCase()

String a = "Java";
String b = new String("Java");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true

正则表达式匹配

使用matches()方法检查字符串是否符合正则规则。

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

性能优化建议

  1. 多次拼接操作优先使用StringBuilder
  2. 静态字符串尽量使用直接赋值(常量池优化)。
  3. 避免在循环中频繁创建字符串对象。

通过以上示例和说明,可以全面掌握 Java 字符串的核心操作与最佳实践。

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