Java基础(十七)字符串

3. 字符串变量

3.1 StringBuffer类(jdk 1.0 开始提供)

StringBuffer类是一个线程安全的可变字符串类,它可以动态地修改字符串内容。主要特点如下:

  • StringBuffer对象创建后,可以随时通过调用其方法来修改字符串内容。
  • StringBuffer类的方法包括字符串的拼接、插入、删除、反转等操作,使得对字符串的操作更加灵活。
  • 由于StringBuffer是线程安全的,适用于在多线程环境下对字符串进行修改的情况。
  • 由于线程安全的特性,StringBuffer的性能相对较低,适用于单线程环境或者对线程安全要求比较高的场景。

使用示例:

StringBuffer sb = new StringBuffer();  // 创建一个空的StringBuffer对象
sb.length();  // 返回 StringBuffer 中字符序列的长度
sb.append("Hello");  // 追加字符串
sb.insert(5, " ");  // 在指定位置插入字符串
sb.delete(0, 2);  // 删除指定范围内的字符 [0,2)
sb.deleteCharAt(0);  // 删除某个位置
sb.reverse();  // 反转字符串
sb.replace(0, 1, "h");  //替换字符
String result = sb.toString();  // 将StringBuffer对象转换为字符串

3.2 StringBuilder类(jdk 1.5 开始提供)

StringBuilder类也是一个可变的字符串类,与StringBuffer类功能类似,但是StringBuilder类不是线程安全的,因此性能略高。主要特点如下:

  • StringBuilder对象创建后,可以通过调用其方法来动态地修改字符串内容,与StringBuffer类相同。
  • StringBuilder类的方法包括字符串的拼接、插入、删除、反转等操作,与StringBuffer类相同。
  • 由于StringBuilder不是线程安全的,适用于单线程环境下对字符串进行修改的场景,性能相对较高。

使用示例:

StringBuilder sb = new StringBuilder();  // 创建一个空的StringBuilder对象
sb.append("Hello");  // 追加字符串
sb.insert(5, " ");  // 在指定位置插入字符串
sb.delete(0, 2);  // 删除指定范围内的字符
sb.reverse();  // 反转字符串
String result = sb.toString();  // 将StringBuilder对象转换为字符串
// StringBuilder --> String
String str = sb.toString();
System.out.println(str);

int capacity = sb.capacity();
System.out.println(capacity);  // 输出为默认容量或者根据实际字符串长度调整后的值

》总结:

  • 当需要对字符串进行频繁且线程安全的修改时,推荐使用StringBuffer类。
  • 当对字符串进行频繁但不涉及多线程的修改时,推荐使用StringBuilder类,因为它具有更好的性能。
  • 无论使用StringBuffer还是StringBuilder,都可以通过其方法来进行字符串的拼接、插入、删除和反转等操作。都继承自抽象类 AbstractStringBuilder

你可能感兴趣的:(Java,java)