一、String类
-
类描述
-
在 Java 中字符串都属于String实例对象。
-
创建与连接字符串
(1) 创建字符串//第一种方式,直接定义 String string = "字符串"; //第二种方式, 构造器定义 String string = new String("字符串");
(2) 字符串连接
//第一种方式,使用+号 String string = "字符串1" + "字符串2"; //第二种方式, 使用String对象方法string1.concat(string2); String string1 = "字符串"; String string2 = "字符串2"; String string = string1.concat(string2);
tips: +号可以是字符串或者数字及其他基本类型数据,而concat只能接收字符串
-
常用方法表
序号 | 方法声明 | 功能说明 |
---|---|---|
1 | String(char[] value) | 字符数组中的字符序列组合并转为String对象 |
2 | String(char[] value, int offset, int count) | 从下标为offset的元素开始组合count个字符数,并将所得序列转为String对象 |
3 | String(byte[] bytes,String charsetName) throws UnsupportedEncodingException | 用指定用指定的charset解码字节数组并转为String |
4 | String(byte[] bytes,int offset,int length,String charsetName) throws UnsupportedEncodingException | bytes - 要解码的字节 offset-解码的第一个字节的索引 length - 要解码的字节数 charsetName - 支持的名称charset |
5 | int length() | 返回此字符串的长度 |
6 | boolean isEmpty() | 如何字符串长度为0,则为true,否则为false |
7 | char charAt(int index) | 返回char指定索引处的值 |
8 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 复制String对象索引srcBegin到srcEnd-1的字符到的字符数组dst且开始索引为dstBegin |
9 | byte[] getBytes(String charsetName) throws UnsupportedEncodingException | 使用命名的字符集将此String编码为字节序列,将结果存储到新的字节数组中。 |
10 | boolean equals(Object anObject) | 将此字符串与指定对象进行比较 |
11 | boolean equalsIgnoreCase(String anotherString) | 如果两个字符串的长度相同,并且忽略大小写时两个字符串中的相应位置字符相等,则两个字符串相等 |
12 | int compareTo(String anotherString) | 按字典顺序比较两个字符串。 比较是基于字符串中每个字符的Unicode值 |
13 | int compareToIgnoreCase(String str) | 按字典顺序比较两个字符串,忽略大小写差异。 |
14 | boolean startsWith(String prefix) | 测试此字符串是否以指定的前缀开头 |
15 | boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结尾 |
16 | int hashCode() | 返回此字符串的哈希码。 String对象的哈希代码计算为 s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1] 使用int算术,其中s[i]是字符串的第i个字符, n是字符串的长度, ^表示取幂。 (空字符串的哈希值为零) |
17 | int indexOf(int ch) | 返回指定字符第一次出现的字符串内的索引 |
18 | int indexOf(String str) | 返回指定子字符串第一次出现的字符串内的索引 |
19 | int lastIndexOf(int ch) | 返回指定字符的最后一次出现的字符串中的索引 |
20 | String substring(int beginIndex,int endIndex) | 返回一个字符串是此String对象的从beginIndex到endIndex形成的子字符串 |
21 | CharSequence subSequence(int beginIndex,int endIndex) | 同上,但返回的时字符序列 |
22 | String concat(String str) | 将指定的字符串连接到该字符串的末尾 |
23 | String replace(char oldChar, char newChar) | 替换字符串中出现的oldChar为newChar |
24 | boolean matches(String regex) | 判断这个字符串是否符合给出的正则匹配规则 |
25 | String replaceFirst(String regex, String replacement) | 匹配并替换第一个符合正则规则的子字符串 |
26 | String replaceAll(String regex,String replacement) | 匹配并替换所有符合正则规则的子字符串 |
27 | String[] split(String regex) | 根据给出的正则匹配规则拆分字符串 |
28 | String toLowerCase() String toUpperCase() | 大小写转换 |
29 | String trim() | 返回一个字符串,其值为此字符串删除任何前导和尾随空格 |
30 | char[] toCharArray() | 将此字符串转换为新的字符数组 |
31 | static String valueOf(T c) | T为boolean,char,int,long,float,double |
32 | String intern() | 当调用intern方法时,如果池已经包含与equals(Object)方法确定的相当于此String对象的字符串,则返回来自池的字符串。 否则,此String对象将添加到池中,并返回对此String对象的引用。 |
二、StringBulider类
-
类描述
StringBuilder类非线程安全,不可被继承,此类设计用作简易替换为StringBuffer使用的是单个线程字符串缓冲区的情况(通常是这种)。在可能的情况下,StringBulider类优先于StringBuffer,因为它在大多实现中将更快。 -
主要方法列表
序号 | 方法声明 | 功能描述 |
---|---|---|
1 | StringBuilder() StringBuilder(String str) StringBuilder(int capacity) | 构造方法 StringBuilder() 构造的字符串构造器初始容量为16个字符 |
2 | StringBuilder append(XXX s) | 在末尾添加字符或字符串,XXX为类型,常见的有String,char[],StringBulider等 |
3. | StringBuilder insert(int offset,String str) | 在指定下标处插入字符数据, XXX为类型,常见的有char[],String等 |
4 | StringBuilder delete(int start, int end) | 删除此字符串序列中的指定的位置字符串 |
5 | StringBuilder deleteCharAt(int index) | 删除指定的位置字符串 |
6 | replace(int start, int end, String str) | 用指定的String中的字符替换此序列的子字符串中的String |
7 | StringBuilder reverse() | 字符串倒置 |
8 | int length() | 返回字符串长度 |
9 | ==int capacity()==返回构造器容量 | |
10 | void trimToSize() | 尝试减少用于字符序列的存储。 如果缓冲区大于保持其当前字符序列所需的缓冲区,则可以将其调整大小以变得更加空间有效 |
11 | String substring(int start, int end) | 返回一个新的String ,其中包含此序列中从下标start延伸到下标end-1之间形成的子序列。 |
三、StringBuffer类
-
类描述
-
主要方法列表
同StringBulider,请向上翻阅
四、String,StringBuilder,StringBuffer区别
- 执行速度。快慢为:StringBuilder > StringBuffer > Strin
- 线程安全。StringBuilder是线程不安全的,而StringBuffer是线程安全的。
- 不作修改的少量数据用 String
单线程操作字符串缓冲区下操作大量数据 StringBuilder
多线程操作字符串缓冲区下操作大量数据 StringBuffer - 接口继承图(图片引自他处)