字符串分为String、StringBuilder、StringBuffer。
这三个类都是在java.lang包下面,如图:摘自JDK API 1.6.0中文版
1、String类:(查看文档可以发现该类是继承Object类,实现自接口Serializable、Comparable<String>,、CharSequence)
- String 对象不可变的,存在方法去中的常量池中。String类中每一个看起来会修改String值得方法,实际上都是创建了一个全新的String对象。
- String对象具有只读性,所以任何指向他的任何引用都不可能改变它的值。
String str1="abc"; //str1指向的内存中只有一个对象abc
String str2=new String("abc"); //str2指向的内存中有两个对象abc、new
System.out.println(str1.equals(str2));//比较的是字符串的内容是否相同 , 结果是true
System.out.println(str1==str2); //比较的字符串的对象引用是否一样,结果是false
String类的一些常用方法:
方法 | 返回值 | 作用 |
charAt(int index) |
char | 取得String中索引位置上的char |
codePointAt(int index) |
int | 返回指定索引处的字符(Unicode 代码点)。 |
codePointBefore(int index) |
int | 返回指定索引之前的字符(Unicode 代码点)。 |
compareTo(String anotherString) |
int,返回值是-1、0、1 | 按字典顺序比较两个字符串。(大小写并不等价) |
compareToIgnoreCase(String str) |
int | 按字典顺序比较两个字符串,不考虑大小写。 |
concat(String str) |
String | 将指定字符串连接到此字符串的结尾。也就是返回一个新的String对象,内容是原始String连接上参数String |
contains(CharSequence s) |
boolean | 该String对象包含参数内容,则返回true |
contentEquals(CharSequence cs) |
boolean | 将此字符串与指定的 CharSequence 比较。如果内容一致则返回true。参数是CharSequence |
contentEquals(StringBuffer sb) |
boolean | 将此字符串与指定的 CharSequence 比较。如果内容一致则返回true。参数是StringBuffer |
endsWith(String suffix) |
boolean | 测试此字符串是否以指定的后缀结束。表明此参数是否是该字符串的后缀。 |
equals(Object anObject) |
boolean | 将此字符串与指定的对象比较。 |
equalsIgnoreCase(String anotherString) |
boolean | 将此 String 与另一个 String 比较,不考虑大小写。 |
getBytes() |
byte[] | 复制byte到目标数组中 |
hashCode() |
int | 返回此字符串的哈希码值 |
indexOf(int ch) |
int | 返回指定字符在此字符串中第一次出现处的索引。 |
indexOf(int ch, int fromIndex) |
int | 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 |
lastIndexOf(String str) |
int | 返回指定子字符串在此字符串中最右边出现处的索引。 |
lastIndexOf (String str, int fromIndex) |
int | 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |
length() |
int | 返回此字符串的长度。 |
matches(String regex) |
boolean | 告知此字符串是否匹配给定的正则表达式。 |
replace(char oldChar, char newChar) |
String | 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |
replaceAll(String regex, String replacement) |
String | 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |
replaceFirst(String regex, String replacement) |
String | 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |
split(String regex) |
String[] | 根据给定正则表达式的匹配拆分此字符串 |
startsWith(String prefix) |
boolean | 测试此字符串是否以指定的前缀开始。 |
startsWith(String prefix, int toffset) |
boolean | 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |
subSequence(int beginIndex, int endIndex) |
CharSequence | 返回一个新的字符序列,它是此序列的一个子序列。 |
substring(int beginIndex) |
String | 返回一个新的字符串,它是此字符串的一个子字符串。注意参数 |
substring(int beginIndex, int endIndex) |
String | 返回一个新字符串,它是此字符串的一个子字符串。注意参数 |
toCharArray() |
char[] | 将此字符串转换为一个新的字符数组。 |
toLowerCase(Locale locale) |
String | 使用给定语言环境的规则将此 String 中的所有字符都转换为小写。如果参数为空,则使用默认语言规则 |
toUpperCase(Locale locale) |
String | 使用给定语言环境的规则将此 String 中的所有字符都转换为大写。如果参数为空,则使用默认语言规则 |
toString() |
String | 返回此对象本身(它已经是一个字符串!)。 |
trim() |
String | 返回字符串的副本,忽略前导空白和尾部空白。 |
valueOf(boolean b) |
static String | 参数可以是boolean、char、double、float、int、long、Object、char[]。返回参数内容的字符串表示形式 |
2、StringBuffer类(查看文档可以发现该类是继承Object类,实现自接口Serializable、CharSequence)
3、StringBuilder类(查看文档可以发现该类是继承Object类,实现自接口Serializable、CharSequence)