文章目录
前言
String类和StringBulider类是java中常见的两种类。
一、String类
String类概述
1 String 类在 java.lang 包下,所以使用的时候不需要导包
2 String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象
3 字符串不可变,它们的值在创建后不能被更改
String类方法小结
String类的常用方法 :
public boolean equals(Object anObject) 比较字符串的内容,严格区分大小写
public boolean equalsIgnoreCase(String anotherString) 比较字符串的内容,忽略大小写
public int length() 返回此字符串的长度
public char charAt(int index) 返回指定索引处的 char 值
public char[] toCharArray() 将字符串拆分为字符数组后返回
public String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾)
public String substring(int beginIndex) 从传入的索引处截取,截取到末尾,得到新的字符串
public String replace(CharSequence target, CharSequence replacement) 使用新值,将字符串中的旧值替换,得到新的字符串
public String[] split(String regex) 根据传入的规则切割字符串,得到字符串数组
二、Stringbuilder类
StringBuilder类概述
概述 : StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
二者区别
- **String类:**内容是不可变的
- **StringBuilder类:**内容是可变的
StringBuilder类的构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
StringBuilder常用的成员方法
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
---|---|
public StringBuilder reverse() | 返回相反的字符序列 |
代码示例
案例需求 :
定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,
并在控制台输出结果。例如,数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
public class StringBuilderTest01 {
public static void main(String[] args) {
//定义一个 int 类型的数组,用静态初始化完成数组元素的初始化
int[] arr = {1, 2, 3};
//调用方法,用一个变量接收结果
String s = arrayToString(arr);
//输出结果
System.out.println("s:" + s);
}
//定义一个方法,用于把 int 数组中的数据按照指定格式拼接成一个字符串返回
/*
两个明确:
返回值类型:String
参数:int[] arr
*/
public static String arrayToString(int[] arr) {
//在方法中用 StringBuilder 按照要求进行拼接,并把结果转成 String 返回
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i=0; i<arr.length; i++) {
if(i == arr.length-1) {
sb.append(arr[i]);
} else {
sb.append(arr[i]).append(", ");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
总结
String类和StringBuilder类都是用于处理字符串的类,但它们有一些区别。
String类是不可变类,即一旦创建了一个字符串对象,就不能更改该对象的内容。每次对字符串进行操作时,都会创建一个新的字符串对象,这会导致大量的对象创建和内存占用。所以如果需要频繁对字符串进行修改操作,使用String类会有较大的性能损耗。
StringBuilder类是可变类,它提供了对字符串内容进行修改的方法,而不会创建新的对象。可以通过append()方法在字符串的末尾添加内容,通过insert()方法在指定位置插入内容,通过delete()方法删除指定位置的内容,通过replace()方法替换指定位置的内容等。这些操作都是在原对象上进行的,所以性能比String类要好。
总结来说:
- 如果字符串内容不需要修改,或者修改次数很少,可以使用String类,因为它具有不可变性,更安全。
- 如果字符串内容需要频繁修改,可以使用StringBuilder类,因为它具有可变性,性能更好。
需要注意的是,String类和StringBuilder类虽然都可以进行字符串操作,但它们的方法和用法有所差异,需要根据实际需求选择合适的类来处理字符串。