Java中API下的String,StringBuffer,StringBuilder的区别及用法
程序员文章站
2022-04-15 18:58:11
String,StringBuffer,StringBuilder的区别及用法目录String,StringBuffer,StringBuilder的异同String的常用方法StringBuffer,StringBuilder的常用方法后记目录String,StringBuffer,StringBuilder的异同String :不可变的字符序列,底层使用char[ ]存储;StringBuffer :可变的字符序列,线程是安全的,但效率低,底层使用char[ ]存储;StringBuffer...
String,StringBuffer,StringBuilder的区别及用法
目录
1.String,StringBuffer,StringBuilder的异同
- String :不可变的字符序列,底层使用char[ ]存储;
- StringBuffer :可变的字符序列,线程是安全的,但效率低,底层使用char[ ]存储;
- StringBuffer :可变的字符序列,jdk5.0新增的,线程不安全,但效率高,一般在单线程或者不考虑线程安全的情况下的使用,使用率最高,底层也是使用char[ ]存储;
2.String的常用方法
String可调用的方法有很多,具体可查jdk api 字典,这里挑选常见的说明:
- concat(“xyz”) :在字符串末尾拼接"xyz"字符串;
- endswitch(“cd”) :判断字符串是否是以"cd"结尾,boolean类型;
- startswitch(“ab”) :判断字符串是否是以"ab"开头,boolean类型;
- equals(Object obj) :判断当前字符串与obj字符串是否相同,此方法需要重写,否则比较的是地址值;
- hashcode( ) : 计算哈希码值;
- indexof(“a”) :找出字符a在字符串中第一次出现的锁引位置(就是类似数组的下标值);
- subtring(2) :从[2,末尾]区间截取字符串;
- subtring(2,8) :从[2,8)区间截取字符串,遵循左闭右开的原则;
- valueof(10) :把整数10转换成字符串形式(把括号中的内容转换成S引用的类型,也可用于包装类的"装箱"操作);
- tocharArray( ) : 把字符串数据存入数组;
- getBytes( ) : 把字符串转成ASCII表对应的整数并存入byte[]数组;
- tocharArray( ) : 把字符串数据存入数组;
3.StringBuffer,StringBuilder的常用方法
StringBuffer,StringBuilder的用法基本一致,这里以StringBuffer举例说明:
- StringBuffer append(xxx) :重载了许多append()方法,用于进行字符串拼接;
- StringBuffer delete(int start, int end) :删除指定位置的内容;
- StringBuffer replace(int start , int end, String str ) :把[start,end)位置字符串替换为str;
- StringBuffer insert(int offset, xxx) :在指定位置插入xxx;
- StringBuffer reverse( ) :把当前字符序列逆转;
总结 :以上是常用方法,我们日常所需要记住的主要有:
增 :append(xxx)
删 :delete(int start, int end)
改 :StringBuffer delete(int start, int end) / set charAt(int n, char ch) 注:该方法是修改一次字符
查 :charAt(int n)
插 :insert(int offset, xxx)
长度 :Length()
遍历 :for()+charAt() / toString
4.后记
1. 运行效率上面:StringBuilder > StringBuffer > String;
2. String一般用于对少量字符串的修改操作,而StringBuilder和StringBuffer(两者底层开辟了一个长度为原数组.length()+16的数组,只有当空间不够用时才进行扩容,扩容方法是:新数组大小变成原来的两倍+2,一直往复进行),一般用于大量字符串的拼接,在此基础上在进行增删改查的方法调用。
本文地址:https://blog.csdn.net/m0_49611292/article/details/108040697
推荐阅读
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
-
C#中StringBuilder用法以及和String的区别分析
-
浅析Java中String与StringBuffer拼接的区别
-
java中String与StringBuilder的区别
-
C#中String StringBuilder StringBuffer类的用法
-
Java之String、StringBuffer、StringBuilder的区别分析
-
java中String和StringBuffer的区别
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
-
Java中String、StringBuffer、StringBuilder的区别(转)
-
C#中String StringBuilder StringBuffer类的用法