String
类表示的字符串。java程序中的所有字符串,如 "abc"
,实现这个类的实例。 字符串是常量,它们的值不能被创建后改变。支持可变字符串字符串缓冲区。因为字符串对象是不可改变的,所以它们可以被共享。例如:
String str = "abc";
相当于:
char data[] = {'a', 'b', 'c'}; String str = new String(data);
方法 | 说明 |
charAt() | 返回指定索引的char值 |
contains() | 如果并且只有当此字符串包含指定的字符序列的字符串值,则返回真值 |
endsWith() | 测试这个字符串以指定的后缀结束 |
equals() | 将此字符串与指定的对象比较 |
getBytes() | 将string编码成一个默认字符集字节,结果存放在一个新的字节数组 |
hashCode | 返回此字符串的哈希代码 |
indexOf() | 返回在这个字符串中指定发子字符串中第一个出现的索引 |
isEmpty() | 返回值如果为true,则length是0 |
lastIndexOf() | 返回在这个字符串中指定发子字符串中最后一个出现的索引 |
split() | 按传入的字符或字符串对String进行拆分,返回拆分之后的数组 |
startsWith() | 测试这个字符串是否以指定的前缀开始的 |
substring() | int为开始的索引,对应String数字中的开始位置,截止的索引位置,对应String中的结束位置,返回字符串的子串 |
toString() | 返回一个“以文本方式表示”此对象的字符串 |
toCharArray() | 将此字符串转换为一个新的字符数组 |
字符串缓冲区是安全的使用多个线程。在必要的情况下,所有的操作在任何特定的实例的行为,如果他们发生在一些串行顺序是一致的顺序的方法调用所涉及的每个单独的线程的方法是同步的。
在StringBuffer
的主营业务是append
和insert
方法的重载,以便接受任何数据类型。每个有效地将一个给定的数据到一个字符串,然后追加或插入字符串的字符的字符串缓冲区。的append
方法总是添加这些字符缓冲区末尾的insert
方法添加的特点;在指定点。
例如,如果z
指一个字符串缓冲区对象的当前内容"start"
,然后调用方法z.append("le")
会导致字符串缓冲区包含"startle"
,而z.insert(4, "le")
会改变字符串缓冲区包含"starlet"
。
一般来说,如果某人是一个StringBuffer
实例,然后sb.append(x)
具有相同的效果sb.insert(sb.length(), x)
。
方法 | 说明 |
append() | 追加一个字符串表示形式 |
capacity() | 返回当前容量 |
delete() | 删除从指定位置开始到指定位置结束的内容,并返回本身 |
deleteCharAt() | 删除指定位置的字符,并返回本身 |
insert() | 插入一个字符串进入这个序列 |
repalce(int start,int end,String st) | 从start开始到end,用str替换 |
reverse() | 反转调用该方法的StringBuffer对象的值 |
StringBuilder用于多个线程不安全。如果需要同步然后建议StringBuffer可用。大致方法于StringBuffer一致
在大部分情况下 StringBuilder > StringBuffer > String