1, 创建方式
// 常量池放 string, JVM 先到常量池查找是否有 string, 没有就创建, 再建立指向关系 String str1 = "string"; // 开辟新的堆内存放 string, 然后建立指向关系 String str2 = new String("string");
2, 不可变
// 常量区创建一个字符串, 并建立指向关系 String str = "string"; // 常量区新创建一个字符串, 并建立指向关系, 同时覆盖原来的指向关系, 原来的字符串将被回收 str = "newString";
3, 常用方法
SN(序号) | 方法描述 |
1 | 返回指定索引处的字符 |
2 | 拼接字符串 |
3 | boolean contentEquals(StringBuffer sb) 参数可以传一个 String 类型, 比较两个 String 是否相等 |
4 | boolean endsWith(String suffix) 判断字符串是否是以指定字符串结尾 |
5 | 字符串转字节数组 |
6 | 返回子字符串第一次出现的索引 |
7 | 返回子字符串最后一次出现的索引 |
8 | 返回字符串的长度 |
9 | String replace(charSequence oldChar, charSequence newChar) 使用字符串替换所有子字符串 String str = "hello world"; str.replace("o", "1"); // hell1 w1rld |
10 | 使用指定的字符串, 字符或正则来拆分字符串, 返回一个字符串字符串 |
11 | boolean startsWith(String prefix) 判断字符串是否是以指定字符串开头 |
12 | String substring(int beginIndex) String substring(int beginIndex, int endIndex) 返回一个子字符串, 前闭后开, 如果只有一个参数, 就是截取后面所有的 |
13 | 转换成小写 |
14 | 转换成大写 |
15 | 返回一个字符数组 |
16 | 去掉首位空格 |
17 | static String valueOf(primitive data type x) 把布尔值/字节/字节数组/小数/整数转成字符串 |
18 | 跟一个字符串或正则比较, 匹配成功返回 true, 反之返回 false |