1.定义:
实现了CharSequence接口的类(CharBuffer、Segment、StringBuffer、StringBuilder)
2.字符串的操作
1.创建字符串
四种方式
// 字符串的定义 String s1 = "字符串s1"; String s2 = new String("abc s2"); char[] char1 = {'c','h','a','r','s','3'}; String s3 = new String(char1);
2.字符串的拼接
两种方式
// 字符串的拼接,在字符尾部拼接 String s4 = s1 + s2; String s5 = s2.concat(s3);
3.字符串的其他操作
1.charAt(int index) 取出字符串指定下标的字符
// charAt(int index) 取出字符串指定下标的字符 System.out.println(s1.charAt(0)); // 取出下标为0的字符 /*输出为: *字 */
2.codePointAt(int index) 返回字符串指定下标的字符的Unicode值
// codePointAt(int index) 返回字符串指定下标的字符的Unicode值 System.out.println(s1.codePointAt(0)); // 取出下标为0的字符对应的Unicode码 /*输出为: *23383 */
3.compareTo(String s) 返回字符串与字符串s的差值(字典顺序比较)
// compareTo(String s) 返回字符串与字符串s的差值(字典顺序比较) String str = "abc"; String str1 = "bbc"; System.out.println(str.compareTo(str1)); /*输出为: *-1 */
4.compareToIgnoreCase(String s) 不区分大小写返回字符串1与字符串2的差值(字典顺序比较)
用于验证码的不区分大小写
// compareToIgnoreCase(String s) 不区分大小写返回字符串1与字符串2的差值(字典顺序比较) // 用于验证码的不区分大小写 String ss = "ABC"; System.out.println(ss.compareToIgnoreCase(str1)); /*输出为: *-1 */
5.contains(String s) 判断一个字符串有无包含另一个字符串s
String sss = "BC"; System.out.println(ss.contains(sss) == true); /*输出为: *true */
6.contentEquals(String s) 判断两个字符串是否相等
// contentEquals(String s) 判断两个字符串是否相等 System.out.println(ss.contentEquals(sss) == false); /*输出为: *true */
7.equalsIgnoreCase(String s) 忽略大小写比较字符串
// equalsIgnoreCase(String s) 忽略大小写比较字符串 System.out.println(str.equalsIgnoreCase(ss) == true); /*输出为: *true */
8.String.formatformat(String format, Object... args) 字符串的格式化
...表示可以有任意多个参数
// String.formatformat(String format, Object... args) 字符串的格式化 // ...表示可以有任意多个参数 int age = 18; String name = "张三"; System.out.println(String.format("我叫%s,今年%d岁",name,age)); /*输出为: *我叫张三,今年18岁 */
9.将其他类型转为String
9.1 拼接空字符串
int i = 1234567; String s = i+""; System.out.println(s+"是个"+s.length()+"位数"); /*输出为: *1234567是个7位数 */
不太正规
9.2 String.valueOf()方法
// 2.String.valueOf()方法 String st = String.valueOf(i); System.out.println(st+"是个"+st.length()+"位数"); /*输出为: *1234567是个7位数 */
10.getBytes() 将字符串转为byte数组
// getBytes() 将字符串转为byte数组 System.out.println(str); for (int j = 0; j < str.getBytes().length; j++) { System.out.print(str.getBytes()[j]+" "); } System.out.println(); /*输出为: *abc *97 98 99 */
11.startsWith(String s) 判断字符串是否以某个字符串开头
// startsWith(String s) 判断字符串是否以某个字符串开头 System.out.println(str.startsWith("a") == true); /*输出为: *true */
12.endsWith(String s) 判断字符串是否以某个字符串结尾
// endsWith(String s) 判断字符串是否以某个字符串结尾 System.out.println(str.endsWith("c") == true); /*输出为: *true */
13.getChars(int oldStart,int oldEnd, char[] ch,int newStart)
将此字符串中的字符复制到目标字符数组中
// getChars(int oldStart,int oldEnd, char[] ch,int newStart) // 将此字符串中的字符复制到目标字符数组中。 char[] c1 = new char[3]; str.getChars(0, str.length(), c1, 0); for (int j = 0; j < c1.length; j++) { System.out.print(c1[j]+" "); } System.out.println(); /*输出为: *a b c */
14.isEmpty() 判断字符串是否为空
// isEmpty() 判断字符串是否为空 System.out.println(str.isEmpty() == false); /*输出为: *true */
15.indexOf(String s) 返回指定子字符串最后一次出现的字符串中的索引
// indexOf(String s) 返回指定子字符串最后一次出现的字符串中的索引。 System.out.println(str.indexOf("c") == 2); /*输出为: *true */
16.replace(String oldStr,String newStr)替换字符串中的某个子串
// replace(String oldStr,String newStr)替换字符串中的某个子串 System.out.println(str); System.out.println(str.replace("b", "bbb")); /*输出为: *abc *abbbc */
17.split(String s) 以s为界限截取字符串为字符串数组
// split(String s) 以s为界限截取字符串为字符串数组 String ssss = "a,b,c,d,e,f"; String[] c2 = ssss.split(","); for (int j = 0; j < c2.length; j++) { System.out.print(c2[j]+" "); } System.out.println(); /*输出为: *a b c d e f */
18.返回字符串的子串
18.1 substring(int start) 返回指定下标开始的子串
// substring(int start) 返回指定下标开始的子串 System.out.println(s1.substring(1)); /*输出为: *符串s1 */
18.2 substring(int start,int end) 返回指定下标区间的子串(左闭右开)
// substring(int start,int end) 返回指定下标区间的子串(左闭右开) System.out.println(s1.substring(1,3)); /*输出为: *符串 */
19.toLowerCase() 将字符串转为小写
// toLowerCase() 将字符串转为小写 System.out.println(ss.toLowerCase()); /*输出为: *abc */
20.toUpperCase() 将字符串转为大写
// toUpperCase() 将字符串转为大写 System.out.println(str.toUpperCase()); /*输出为: *ABC */
21.trim() 去除字符串两端的不可见字符
// trim() 去除字符串两端的不可见字符 String test = "\t abcd efg \t"; System.out.println(test.trim()); /*输出为: *abcd efg */