目录
关于JDK内置的一个类:java.lang.String
1.String表示字符串类型,属于引用数据类型
2.java中任何使用双引号括起来的都是String对象
3.java中规定,双引号括起来的字符串,是不可变的,也就是说"abc"自出生到最终死亡不可变
4.在JDK当中双引号括起来的字符串,例如:"abc","def"都是直接存储在方法区的字符串常量池当中
5.为什么SUN公司把字符串存储在一个"字符串常量池"当中
因为字符串在实际的开发中使用太频繁。为了执行效率,所以把字符串放到了方法区的字符串常量池当中
6.String构造方法
1.String s1 = new String(" ");
2.String s2 = " ";
3.String s3 = new String(char数组);
4.String s4 = new String(char数组,起始下标,长度);
5.String s5 = new String(byte数组);
6.String s6 = new String(byte数组,起始下标,长度);
7.String常用方法
1.public char charAt(int index)
返回指定索引处的
char值。索引范围为从0到length() - 1。序列的第一个char值位于索引0处,第二个位于索引1处,依此类推,这类似于数组索引2.public int compareTo(String anotherString)
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此
String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo只在方法equals(Object)返回true时才返回0。3.public boolean contains(CharSequence s)
当且仅当此字符串包含指定的 char 值序列时,返回 true。
4.public boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。
5.public boolean equals(Object anObject)
将此字符串与指定的对象比较。当且仅当该参数不为
null,并且是与此对象表示相同字符序列的String对象时,结果才为true。6.public boolean equalsIgnoreCase(String anotherString)
将此
String与另一个String比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。7.public byte[] getBytes(String charsetName)
使用指定的字符集将此
String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。8.public int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
9.public int length()
返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。
10.public boolean isEmpty()
当且仅当
length()为 0 时返回 true。11.public int lastIndexOf(String str)
返回指定子字符串在此字符串中最右边出现处的索引。将最右边的空字符串 "" 视为出现在索引值
this.length()处。12.public String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用
newChar替换此字符串中出现的所有oldChar得到的。13.public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
14.public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
15.public String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
16.public String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的
beginIndex处开始,直到索引endIndex - 1处的字符。因此,该子字符串的长度为endIndex-beginIndex。17.public char[] toCharArray()
将此字符串转换为一个新的字符数组。
18.public String toLowerCase()
使用默认语言环境的规则将此
String中的所有字符都转换为小写。19.public String toUpperCase()
使用默认语言环境的规则将此
String中的所有字符都转换为大写。20.public String trim()
返回字符串的副本,忽略前导空白和尾部空白。
21.public static String valueOf()
把括号里的数据(boolean,char,char[],double,float,int,long,Object )转换成字符串
StringBuffer
1.StringBuffer底层是一个byte数组
2.往StringBuffer中放字符串,实际上是放到byte数组中了
3.StringBuffer的初始化容量是16
4.构造方法:StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
5.append()方法:实现字符串拼接
6.拼接字符串最好使用append()方法
7.append()方法底层追加的时候如果满了,会自动扩容
8.在创建StringBuffer的时候尽可能给定一个大一点的初始化容量,减少底层的扩容次数
StringBuilder
1.StringBuilder和StringBuffer差不多,不过有一点区别
1.和StringBuffer的区别
StringBuffer中的方法都有synchronized关键词修饰,表示StringBuffer在多线程环境下运行时安全的,StringBuilder中的synchronized关键词修饰,表示StringBuilder在多线程环境下运行是不安全的
本文详细介绍了Java中的String类,包括其不可变性、存储位置、构造方法及常用方法。同时,讨论了StringBuffer和StringBuilder类,它们用于字符串拼接,StringBuffer在多线程环境下更安全,而StringBuilder在单线程环境中性能更优。建议在需要频繁修改字符串时使用StringBuilder,并在多线程场景下选择StringBuffer。
961

被折叠的 条评论
为什么被折叠?



