ava String Builder的基本操作


Java中的StringBuilder类是一个可变的字符串,可以进行添加、插入、删除、替换等操作。以下是StringBuilder的一些基本操作:

  1. 创建StringBuilder对象:可以使用无参构造函数或带初始容量参数的构造函数创建StringBuilder对象。
StringBuilder sb = new StringBuilder(); // 创建一个空的StringBuilder对象
StringBuilder sb = new StringBuilder("hello"); // 创建一个包含字符串"hello"的StringBuilder对象
StringBuilder sb = new StringBuilder(16); // 创建一个初始容量为16的StringBuilder对象
  1. 添加字符串:可以使用append()方法在StringBuilder对象的末尾添加字符串。
tringBuilder sb = new StringBuilder();
sb.append("hello");
sb.append(" ");
sb.append("world");
System.out.println(sb.toString()); // 输出 "hello world"
  1. 插入字符串:可以使用insert()方法在StringBuilder对象的指定位置插入字符串。
StringBuilder sb = new StringBuilder("hello");
sb.insert(2, "w");
System.out.println(sb.toString()); // 输出 "hewllo"
  1. 删除字符串:可以使用delete()方法删除StringBuilder对象中指定位置的字符或子字符串。
StringBuilder sb = new StringBuilder("hello");
sb.delete(2, 4); // 删除位置2到位置3的字符,包括位置2,不包括位置4
System.out.println(sb.toString()); // 输出 "heo"
  1. 替换字符串:可以使用replace()方法替换StringBuilder对象中指定位置的字符或子字符串。
StringBuilder sb = new StringBuilder("hello");
sb.replace(2, 4, "p"); // 将位置2到位置3的字符替换为字符串"p",包括位置2,不包括位置4
System.out.println(sb.toString()); // 输出 "help"
  1. 反转字符串:可以使用reverse()方法反转StringBuilder对象中的字符串。
StringBuilder sb = new StringBuilder("hello");
sb.reverse();
System.out.println(sb.toString()); // 输出 "olleh"
  1. 获取字符串:可以使用toString()方法将StringBuilder对象转换为字符串。
StringBuilder sb = new StringBuilder("hello");
String str = sb.toString();
System.out.println(str); // 输出 "hello"
  1. 获取长度:可以使用length()方法获取StringBuilder对象的长度。
StringBuilder sb = new StringBuilder("hello");
int len = sb.length();
System.out.println(len); // 输出 5
  1. 设置长度:可以使用setLength()方法设置StringBuilder对象的长度,如果新的长度小于当前长度,则会截取字符串,如果新的长度大于当前长度,则会用空格填充字符串。
StringBuilder sb = new StringBuilder("hello");
sb.setLength(8); // 将StringBuilder对象的长度设置为8
System.out.println(sb.toString()); // 输出 "hello   "
  1. 清空字符串:可以使用setLength(0)或者delete(0, length())方法清空StringBuilder对象中的字符串。
StringBuilder sb = new StringBuilder("hello");
sb.setLength(0); // 清空StringBuilder对象中的字符串
System.out.println(sb.toString()); // 输出 ""
  1. 获取字符:可以使用charAt()方法获取StringBuilder对象中指定位置的字符。
StringBuilder sb = new StringBuilder("hello");
char ch = sb.charAt(1); // 获取StringBuilder对象中位置为1的字符,即字符'e'
System.out.println(ch); // 输出 'e'
  1. 获取子字符串:可以使用substring()方法获取StringBuilder对象中指定位置的子字符串。
StringBuilder sb = new StringBuilder("hello");
String sub = sb.substring(1, 4); // 获取StringBuilder对象中位置1到位置3的子字符串,包括位置1,不包括位置4
System.out.println(sub); // 输出 "ell"

以上就是StringBuilder的一些基本操作。需要注意的是,StringBuilder是非线程安全的,如果在多线程环境下使用,应该使用StringBuffer类来代替StringBuilder类。

  1. 查找字符串:可以使用indexOf()或lastIndexOf()方法在StringBuilder对象中查找指定字符串或字符第一次或最后一次出现的位置。
StringBuilder sb = new StringBuilder("hello");
int index = sb.indexOf("l"); // 查找StringBuilder对象中第一次出现字符'l'的位置
System.out.println(index); // 输出 2

int lastIndex = sb.lastIndexOf("l"); // 查找StringBuilder对象中最后一次出现字符'l'的位置
System.out.println(lastIndex); // 输出 3
  1. 比较字符串:可以使用equals()方法比较StringBuilder对象和其他字符串对象是否相等,可以使用compareTo()方法比较StringBuilder对象和其他字符串对象的大小关系。
StringBuilder sb1 = new StringBuilder("hello");
StringBuilder sb2 = new StringBuilder("hello");
StringBuilder sb3 = new StringBuilder("world");

boolean equal = sb1.equals(sb2); // 判断sb1和sb2是否相等
System.out.println(equal); // 输出 true

int compare = sb1.compareTo(sb3); // 比较sb1和sb3的大小关系,返回一个整数,如果sb1大于sb3,返回一个正整数,如果sb1等于sb3,返回0,如果sb1小于sb3,返回一个负整数。
System.out.println(compare); // 输出一个负整数,因为sb1小于sb3。
  1. 转换大小写:可以使用toUpperCase()和toLowerCase()方法将StringBuilder对象中的字符串转换为大写或小写。
StringBuilder sb = new StringBuilder("Hello");
String upper = sb.toString().toUpperCase(); // 将sb中的字符串转换为大写
System.out.println(upper); // 输出 "HELLO"

String lower = sb.toString().toLowerCase(); // 将sb中的字符串转换为小写
System.out.println(lower); // 输出 "hello"
  1. 格式化字符串:可以使用append()方法和String.format()方法格式化StringBuilder对象中的字符串。
StringBuilder sb = new StringBuilder();
sb.append(String.format("The value of pi is %.2f", Math.PI)); // 格式化字符串,并添加到StringBuilder对象中
System.out.println(sb.toString()); // 输出 "The value of pi is 3.14"

以上就是一些常见的StringBuilder的操作。StringBuilder是一个非常有用的类,特别适用于需要频繁修改字符串的场景。在Java中,字符串是不可变的,如果需要修改字符串,每次都需要创建一个新的字符串对象,而使用StringBuilder可以避免这种情况,提高代码的效率。

  1. 插入字符串:可以使用insert()方法在StringBuilder对象中指定位置插入字符串。
StringBuilder sb = new StringBuilder("hello");
sb.insert(2, "world"); // 在位置2处插入字符串"world"
System.out.println(sb.toString()); // 输出 "heworldllo"
  1. 删除字符串:可以使用delete()方法删除StringBuilder对象中指定位置的字符串。
StringBuilder sb = new StringBuilder("hello");
sb.delete(1, 3); // 删除位置1到位置2的字符串
System.out.println(sb.toString()); // 输出 "hlo"
  1. 替换字符串:可以使用replace()方法在StringBuilder对象中替换指定位置的字符串。
StringBuilder sb = new StringBuilder("hello");
sb.replace(1, 3, "i"); // 将位置1到位置2的字符串替换为字符"i"
System.out.println(sb.toString()); // 输出 "hilo"
  1. 反转字符串:可以使用reverse()方法将StringBuilder对象中的字符串反转。
StringBuilder sb = new StringBuilder("hello");
sb.reverse(); // 反转StringBuilder对象中的字符串
System.out.println(sb.toString()); // 输出 "olleh"
  1. 获取容量:可以使用capacity()方法获取StringBuilder对象的容量。
StringBuilder sb = new StringBuilder();
int capacity = sb.capacity(); // 获取StringBuilder对象的容量
System.out.println(capacity); // 输出 16
  1. 设置容量:可以使用ensureCapacity()方法设置StringBuilder对象的容量。
StringBuilder sb = new StringBuilder();
sb.ensureCapacity(32); // 将StringBuilder对象的容量设置为32

以上就是StringBuilder的一些基本操作,希望对你有所帮助。需要注意的是,StringBuilder是非线程安全的,如果在多线程环境下使用,应该使用StringBuffer类来代替StringBuilder类。


原文链接:codingdict.net