java常用API-String、StringBuilder、StringBuffer
StringBuilder
StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的
好处: StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。
构造方法:
构造器 | 说明 |
---|---|
public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
常用方法:
append:在字符串末尾添加内容(可以是任意类型) insert:在指定位置插入内容 delete:删除指定位置的字符 deleteCharAt:删除指定位置的字符 replace:替换指定位置的字符 substring:截取子串 indexOf:查找指定字符串位置 lastIndexOf:查找最后一次出现的指定字符串位置 length:获取当前字符串长度 setLength:设置字符串长度
toString : 可以把StringBuilder转换为String
reverse:反转字符串
常用方法的基本使用:
public class StringDemo {
public static void main(String[] args) {
//StringBuilder
StringBuilder strbu=new StringBuilder("你好");
System.out.println(strbu);
//增
strbu.append("java修炼手册").append(19).append(90);
System.out.println(strbu); //你好java修炼手册1990
System.out.println(strbu.reverse()); //反转字符串
//0991册手炼修avaj好你
//删除
strbu.delete(1,2); // 删除序号1-2的字符串,但是不包括2
System.out.println(strbu); //091册手炼修avaj好你
// 改 replace
strbu.replace(0,1,"2020");
System.out.println(strbu); //202091册手炼修avaj好你
//获取长度
System.out.println(strbu.length());//16
//转换为一个字符串
String s = strbu.toString();
System.out.println(s);//202091册手炼修avaj好你
//插入insert
strbu.insert(0,88); //插入位置,插入的数据
System.out.println(strbu);//88202091册手炼修avaj好你
//查找indexOf
System.out.println(strbu.indexOf("手")); //9
}
}
为啥要用StringBuilder?
对于字符串相关的操作,如频繁的拼接、修改等,建议用StringBuidler,效率更高!
注意: 如果操作字符串较少,或者不需要操作,以及定义字符串变量,还是建议用String。
StringBuilder sb=new StringBuilder();
for (int i = 0; i < 100000; i++) { //运行速度比以往的String的速度快很多倍
sb.append(i);
}
System.out.println(sb);
StringBuffer
注意:
- StringBuffer的用法与StringBuilder是一模一样的
- 但stringBuilder是线程不安全的,StringBuffer是线程安全的
案例:返回任意整型数组的内容
public class StringDemo {
public static void main(String[] args) {
//返回任意整形数组的内容
int[] arr={23,54,675,7,5,2,4,6,432};
String arrayData = getArrayData(arr);
System.out.println(arrayData);//[23,54,675,7,5,2,4,6,432]
}
public static String getArrayData(int[] arr){
if(arr==null){
return null;
}
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append('[');
for (int i = 0; i