引言:本文将会对String、StringBuilder和StringBuffer的主要区别进行简要的概括,特别会从性能、安全性和使用场景上进行一定的分析。最后会对这三者常用的方法进行一定的归纳总结。适用于入门学习、面试以及日常开发中查找方法。
一、快速使用
1、性能
StringBuilder > StringBuffer >String
2、场景
需要经常改变字符串内容的使用StringBuilder或StringBuffer
3、性能和安全
优先使用StringBuilder,多线程使用共享变量时使用StringBuffer
4、概要
String有final修饰,不可变,每次赋值都会产生新的String对象(String是只读字符串)
StringBuilder和StringBuffer都是在原对象操作,是可变的字符串对象
StringBuilder是线程不安全的,StringBuffer是线程安全的(所有的方法都有synchronized修饰)
5、详情
StringBuilder和StringBuffer都继承了AbstractStringBuilder类,并且都覆盖了AbstractStringBuilder中的方法,但是StringBuffer覆写的方法都加了synchronized。
(1)StringBuilder和StringBuffer都继承了AbstractStringBuilder类
(2)StringBuilder和StringBuffer都覆盖了AbstractStringBuilder中的方法,但是StringBuffer覆写的方法都加了synchronized
二、String的常用方法
String类有final修饰,不可被继承。
【注】①final修饰类表示类不可被继承;
②final修饰方法表示方法不可被子类覆盖,但是可以重载;
③final修饰变量表示该变量一旦被赋值就不可以更改)
1、charAt(int index)
【概述】返回 char指定索引处的值
【返回值】char
【参数】int index
【示例】
2、codePointAt(int index)
【概述】返回指定索引处的字符(Unicode代码点)。
【返回值】int
【参数】
【示例】
3、codePointBefore(int index)
【概述】返回指定索引之前的字符(Unicode代码点)
【返回值】int
【参数】
【示例】
4、codePointCount(int beginIndex, int endIndex)
【概述】返回此 String指定文本范围内的Unicode代码点数
【返回值】int
【参数】
【示例】
5、compareTo(String anotherString)
【概述】按字典顺序比较两个字符串
【返回值】int
【参数】
【示例】
6、compareToIgnoreCase(String str)
【概述】按字典顺序比较两个字符串,忽略病例差异
【返回值】int
【参数】
【示例】
7、concat(String str)
【概述】将指定的字符串连接到该字符串的末尾
【返回值】String
【参数】
【示例】
8、contains(CharSequence s)
【概述】当且仅当此字符串包含指定的char值序列时才返回true。
【返回值】boolean
【参数】
【示例】
9、contentEquals(CharSequence cs)
【概述】将此字符串与指定的CharSequence进行 CharSequence
【返回值】boolean
【参数】
【示例】
10、contentEquals(StringBuffer sb)
【概述】将此字符串与指定的StringBuffer进行 StringBuffer
【返回值】boolean
【参数】
【示例】
11、copyValueOf(char[] data)
【概述】相当于 valueOf(char[])
【返回值】String
【参数】
【示例】
12、copyValueOf(char[] data, int offset, int count)
【概述】相当于 valueOf(char[], int, int)
【返回值】String
【参数】
【示例】
13、endsWith(String suffix)
【概述】测试此字符串是否以指定的后缀结尾
【返回值】boolean
【参数】
【示例】
14、equals(Object anObject)
【概述】将此字符串与指定对象进行比较
【返回值】boolean
【参数】
【示例】
15、equalsIgnoreCase(String anotherString)
【概述】将此 String与其他 String比较
【返回值】boolean
【参数】
【示例】
16、format(Locale l, String format, Object… args)
【概述】使用指定的区域设置,格式字符串和参数返回格式化的字符串
【返回值】String
【参数】
【示例】
17、format(String format, Object… args)
【概述】使用指定的格式字符串和参数返回格式化的字符串
【返回值】String
【参数】
【示例】
18、getBytes()
【概述】使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中
【返回值】byte[]
【参数】
【示例】
19、getBytes(Charset charset)
【概述】使用给定的charset将该String编码为字节序列,将结果存储到新的字节数组中
【返回值】byte[]
【参数】
【示例】
20、 getBytes(String charsetName)
【概述】使用命名的字符集将此 String编码为字节序列,将结果存储到新的字节数组中
【返回值】byte[]
【参数】
【示例】
21、getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
【概述】将此字符串中的字符复制到目标字符数组中
【返回值】无
【参数】
【示例】
22、hashCode()
【概述】返回此字符串的哈希码
【返回值】int
【参数】
【示例】
23、indexOf(int ch)
【概述】返回指定字符第一次出现的字符串内的索引
【返回值】int
【参数】
【示例】
24、indexOf(int ch, int fromIndex)
【概述】返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索
【返回值】int
【参数】
【示例】
25、indexOf(String str)
【概述】返回指定子字符串第一次出现的字符串内的索引
【返回值】int
【参数】
【示例】
26、indexOf(String str, int fromIndex)
【概述】返回指定子串的第一次出现的字符串中的索引,从指定的索引开始
【返回值】int
【参数】
【示例】
27、intern()
【概述】返回字符串对象的规范表示
【返回值】String
【参数】
【示例】
28、isEmpty()
【概述】如果字符串为空返回 true,否则返回 false
【返回值】boolean
【参数】
【示例】
29、join(CharSequence delimiter, CharSequence… elements)
【概述】返回一个新的字符串,由 CharSequence elements的副本组成,并附有指定的delimiter的 delimiter
【返回值】String
【参数】
【示例】
30、join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
【概述】返回一个新 String的副本组成 CharSequence elements与指定的副本一起加入 delimiter
【返回值】String
【参数】
【示例】
31、lastIndexOf(int ch)
【概述】返回指定字符的最后一次出现的字符串中的索引
【返回值】int
【参数】
【示例】
32、lastIndexOf(int ch, int fromIndex)
【概述】返回指定字符的最后一次出现的字符串中的索引,从指定的索引开始向后搜索
【返回值】int
【参数】
【示例】
33、lastIndexOf(String str)
【概述】返回指定子字符串最后一次出现的字符串中的索引
【返回值】int
【参数】
【示例】
34、lastIndexOf(String str, int fromIndex)
【概述】从指定索引开始向后搜索,返回指定子字符串的最后一次出现的字符串中的索引
【返回值】int
【参数】
【示例】
35、length()
【概述】返回此字符串的长度
【返回值】int
【参数】
【示例】
36、matches(String regex)
【概述】判断这个字符串是否匹配给定的 regular expression
【返回值】boolean
【参数】
【示例】
37、offsetByCodePoints(int index, int codePointOffset)
【概述】返回此 String内的指数,与 index codePointOffset代码点
【返回值】int
【参数】
【示例】
38、regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
【概述】判断两个字符串区域是否相等
【返回值】boolean
【参数】
【示例】
39、regionMatches(int toffset, String other, int ooffset, int len)
【概述】判断两个字符串区域是否相等
【返回值】boolean
【参数】
【示例】
40、replace(char oldChar, char newChar)
【概述】返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar
【返回值】String
【参数】
【示例】
41、replace(CharSequence target, CharSequence replacement)
【概述】将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列
【返回值】String
【参数】
【示例】
42、replaceAll(String regex, String replacement)
【概述】用给定的替换替换与给定的 regular expression匹配的此字符串的所有子字符串
【返回值】String
【参数】
【示例】
43、replaceFirst(String regex, String replacement)
【概述】用给定的替换替换与给定的 regular expression匹配的此字符串的第一个子字符串
【返回值】String
【参数】
【示例】
44、split(String regex)
【概述】将此字符串分割为给定的 regular expression的匹配
【返回值】String[]
【参数】
【示例】
45、split(String regex, int limit)
【概述】将这个字符串拆分为给定的 regular expression的匹配
【返回值】String[]
【参数】
【示例】
46、startsWith(String prefix)
【概述】判断此字符串是否以指定的前缀开头。
【返回值】boolean
【参数】
【示例】
47、startsWith(String prefix, int toffset)
【概述】判断在指定索引处开始的此字符串的子字符串是否以指定的前缀开头。
【返回值】boolean
【参数】
【示例】
48、subSequence(int beginIndex, int endIndex)
【概述】返回一个字符序列,该序列是该序列的子序列
【返回值】CharSequence
【参数】
【示例】
49、substring(int beginIndex)
【概述】返回一个字符串,该字符串是此字符串的子字符串
【返回值】String
【参数】
【示例】
50、substring(int beginIndex, int endIndex)
【概述】返回一个字符串,该字符串是此字符串的子字符串
【返回值】String
【参数】
【示例】
51、toCharArray()
【概述】将此字符串转换为新的字符数组
【返回值】char[]
【参数】
【示例】
52、toLowerCase()
【概述】将所有在此字符 String使用默认语言环境的规则,以小写
【返回值】String
【参数】
【示例】
53、toLowerCase(Locale locale)
【概述】将所有在此字符 String ,以降低使用给定的规则情况下 Locale
【返回值】String
【参数】
【示例】
54、toUpperCase()
【概述】将所有在此字符 String使用默认语言环境的规则大写
【返回值】String
【参数】
【示例】
55、toUpperCase(Locale locale)
【概述】将所有在此字符 String使用给定的规则,大写 Locale
【返回值】String
【参数】
【示例】
56、trim()
【概述】返回一个字符串,其值为此字符串,并删除所有空格
【返回值】String
【参数】
【示例】
57、valueOf(boolean b)
【概述】返回 boolean参数的字符串 boolean形式
【返回值】String
【参数】
【示例】
58、valueOf(char c)
【概述】返回 char参数的字符串 char形式
【返回值】String
【参数】
【示例】
59、valueOf(char[] data)
【概述】返回 char数组参数的字符串 char形式
【返回值】String
【参数】
【示例】
60、valueOf(char[] data, int offset, int count)
【概述】返回 char数组参数的特定子阵列的字符串 char形式
【返回值】String
【参数】
【示例】
61、valueOf(double d)
【概述】返回 double参数的字符串 double形式
【返回值】String
【参数】
【示例】
62、valueOf(float f)
【概述】返回 float参数的字符串 float形式
【返回值】String
【参数】
【示例】
63、valueOf(int i)
【概述】返回 int参数的字符串 int形式
【返回值】String
【参数】
【示例】
64、valueOf(long l)
【概述】返回 long参数的字符串 long形式
【返回值】String
【参数】
【示例】
65、valueOf(Object obj)
【概述】返回 Object参数的字符串 Object形式
【返回值】String
【参数】
【示例】
三、StringBuilder的常用方法
1、 append(boolean b)
【概述】将 boolean参数的字符串表示附加到序列中
【返回值】StringBuilder
【参数】
【示例】
2、append(char c)
【概述】将 char参数的字符串表示附加到此序列
【返回值】StringBuilder
【参数】
【示例】
3、append(char[] str)
【概述】将 char数组参数的字符串表示追加到此序列
【返回值】StringBuilder
【参数】
【示例】
4、append(char[] str, int offset, int len)
【概述】将 char数组参数的子阵列的字符串表示附加到此序列
【返回值】StringBuilder
【参数】
【示例】
5、append(CharSequence s)
【概述】将指定的字符序列追加到此 Appendable
【返回值】StringBuilder
【参数】
【示例】
6、append(CharSequence s, int start, int end)
【概述】追加指定的序列 CharSequence的序列
【返回值】StringBuilder
【参数】
【示例】
7、append(double d)
【概述】将 double参数的字符串表示法附加到此序列
【返回值】StringBuilder
【参数】
【示例】
8、append(float f)
【概述】将 float参数的字符串表示附加到此序列
【返回值】StringBuilder
【参数】
【示例】
9、append(int i)
【概述】将 int参数的字符串表示法附加到此序列
【返回值】StringBuilder
【参数】
【示例】
10、append(long lng)
【概述】将 long参数的字符串表示法附加到此序列
【返回值】StringBuilder
【参数】
【示例】
11、append(Object obj)
【概述】追加 Object参数的字符串 Object形式
【返回值】StringBuilder
【参数】
【示例】
12、append(String str)
【概述】将指定的字符串附加到此字符序列
【返回值】StringBuilder
【参数】
【示例】
13、append(StringBuffer sb)
【概述】将指定 StringBuffer这个序列
【返回值】StringBuilder
【参数】
【示例】
14、appendCodePoint(int codePoint)
【概述】将 codePoint参数的字符串表示附加到此序列
【返回值】StringBuilder
【参数】
【示例】
15、capacity()
【概述】返回当前容量
【返回值】int
【参数】
【示例】
16、charAt(int index)
【概述】返回 char在指定索引在这个序列值
【返回值】char
【参数】
【示例】
17、codePointAt(int index)
【概述】返回指定索引处的字符(Unicode代码点)
【返回值】int
【参数】
【示例】
18、codePointBefore(int index)
【概述】返回指定索引之前的字符(Unicode代码点)
【返回值】int
【参数】
【示例】
19、codePointCount(int beginIndex, int endIndex)
【概述】返回此序列指定文本范围内的Unicode代码点数
【返回值】int
【参数】
【示例】
20、delete(int start, int end)
【概述】删除此序列的子字符串中的字符
【返回值】StringBuilder
【参数】
【示例】
21、deleteCharAt(int index)
【概述】删除 char在这个序列中的指定位置
【返回值】StringBuilder
【参数】
【示例】
22、ensureCapacity(int minimumCapacity)
【概述】确保容量至少等于规定的最小值
【返回值】
【参数】
【示例】
23、getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
【概述】字符从该序列复制到目标字符数组 dst
【返回值】
【参数】
【示例】
24、indexOf(String str)
【概述】返回指定子字符串第一次出现的字符串内的索引
【返回值】int
【参数】
【示例】
25、indexOf(String str, int fromIndex)
【概述】返回指定子串的第一次出现的字符串中的索引,从指定的索引开始
【返回值】int
【参数】
【示例】
26、insert(int offset, boolean b)
【概述】将 boolean参数的字符串表示插入到此序列中
【返回值】StringBuilder
【参数】
【示例】
27、insert(int offset, char c)
【概述】在此序列中插入 char参数的字符串表示形式
【返回值】StringBuilder
【参数】
【示例】
28、insert(int offset, char[] str)
【概述】在此序列中插入 char数组参数的字符串表示形式
【返回值】StringBuilder
【参数】
【示例】
29、insert(int index, char[] str, int offset, int len)
【概述】在此序列中插入 str数组参数的子阵列的字符串表示形式
【返回值】StringBuilder
【参数】
【示例】
30、insert(int dstOffset, CharSequence s)
【概述】将指定的 CharSequence这个序列
【返回值】StringBuilder
【参数】
【示例】
31、insert(int dstOffset, CharSequence s, int start, int end)
【概述】将指定的CharSequence的子 CharSequence插入到此序列中
【返回值】StringBuilder
【参数】
【示例】
32、insert(int offset, double d)
【概述】在此序列中插入 double参数的字符串表示形式
【返回值】StringBuilder
【参数】
【示例】
33、insert(int offset, float f)
【概述】在此序列中插入 float参数的字符串表示形式
【返回值】StringBuilder
【参数】
【示例】
34、insert(int offset, int i)
【概述】将第二个 int参数的字符串表示插入到此序列中
【返回值】StringBuilder
【参数】
【示例】
35、insert(int offset, long l)
【概述】在此序列中插入 long参数的字符串表示形式
【返回值】StringBuilder
【参数】
【示例】
36、insert(int offset, Object obj)
【概述】将 Object参数的字符串表示插入到此字符序列中
【返回值】StringBuilder
【参数】
【示例】
37、insert(int offset, String str)
【概述】将字符串插入到此字符序列中
【返回值】StringBuilder
【参数】
【示例】
38、lastIndexOf(String str)
【概述】返回指定子字符串最右边出现的字符串内的索引
【返回值】int
【参数】
【示例】
39、lastIndexOf(String str, int fromIndex)
【概述】返回指定子字符串最后一次出现的字符串中的索引
【返回值】int
【参数】
【示例】
40、length()
【概述】返回长度(字符数)
【返回值】int
【参数】
【示例】
41、offsetByCodePoints(int index, int codePointOffset)
【概述】返回此序列中与 index由 codePointOffset代码点偏移的索引
【返回值】int
【参数】
【示例】
42、replace(int start, int end, String str)
【概述】用指定的String中的字符替换此序列的子字符串中的 String
【返回值】StringBuilder
【参数】
【示例】
43、reverse()
【概述】导致该字符序列被序列的相反代替
【返回值】StringBuilder
【参数】
【示例】
44、setCharAt(int index, char ch)
【概述】指定索引处的字符设置为 ch
【返回值】
【参数】
【示例】
45、setLength(int newLength)
【概述】设置字符序列的长度
【返回值】
【参数】
【示例】
46、subSequence(int start, int end)
【概述】返回一个新的字符序列,该序列是该序列的子序列
【返回值】CharSequence
【参数】
【示例】
47、substring(int start)
【概述】返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列
【返回值】String
【参数】
【示例】
48、substring(int start, int end)
【概述】返回一个新的 String ,其中包含此序列中当前包含的字符的子序列
【返回值】String
【参数】
【示例】
四、StringBuffer的常用方法
参考StringBuilder
StringBuilder和StringBuffer都继承了AbstractStringBuilder类,并且都覆盖了AbstractStringBuilder中的方法,但是StringBuffer覆写的方法都加了synchronized。这里暂时就不对StringBuffer类里面的方法做过多的描述。
未完。。。待续。。。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117614.html