外观
String类
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
*/
StringBuffer类
常用函数
1.append() 在字符串后面追加一个变量(int、boolean、char、char[]、CharSequence、double、float、long、String、Object、StringBuffer)
追加后不会产生新的字符串
// append(int i) 在字符串后面追加一个数字并转换为字符串
// 追加后不会产生新的字符串
StringBuffer sb = new StringBuffer("abcdefg");
for (int i = 0; i < 10; i++) {
sb.append(i);
}
System.out.println(sb);
/*输出为:
*abcdefg0123456789
*/
2.delete(int start,int end) 删除指定下标区间的字符
// delete(int start,int end) 删除指定下标区间的字符
StringBuffer sb1 = new StringBuffer("abcdefg");
System.out.println(sb1.delete(2, 6));
/*输出为:
*abg
*/
3.deleteCharAt(int index) 删除字符串指定下标的字符
// deleteCharAt(int index) 删除字符串指定下标的字符
StringBuffer sb2 = new StringBuffer("abcdefg");
System.out.println(sb2.deleteCharAt(3));
/*输出为:
*abcefg
*/
4.insert(int index, char ch) 在字符串的指定位置插入字符
// insert(int index, char ch) 在字符串的指定位置插入字符
StringBuffer sb3 = new StringBuffer("abcdefg");
System.out.println(sb3.insert(3, '4'));
/*输出为:
*abc4defg
*/
5.setCharAt(int index, char ch) 替换字符串指定位置的字符
// setCharAt(int index, char ch) 替换字符串指定位置的字符
StringBuffer sb4 = new StringBuffer("abcdefg");
sb4.setCharAt(3, '4');
System.out.println(sb4);
/*输出为:
*abc4efg
*/
6.reverse() 字符串反转
// reverse() 字符串反转
StringBuffer sb5 = new StringBuffer("abcdefg");
System.out.println(sb5.reverse());
/*输出为:
*gfedcba
*/
7.substring(int index) 截取字符串从指定下标开始的子串
// substring(int index) 截取字符串从指定下标开始的子串
StringBuffer sb6 = new StringBuffer("abcdefg");
System.out.println(sb6.substring(2));
/*输出为:
*cdefg
*/
8.substring(int start,int end) 截取字符串从指定下标范围的子串
// substring(int start,int end) 截取字符串从指定下标范围的子串
StringBuffer sb7 = new StringBuffer("abcdefg");
System.out.println(sb7.substring(2,5));
/*输出为:
*cde
*/
9.capacity() 返回当前字符串容量
// capacity() 返回当前字符串容量
StringBuffer sb8 = new StringBuffer("abcdefg");
System.out.println(sb8.capacity());
/*输出为:
*23
*/
Java字符容量计算:比如StringBuffer sb=new StringBuffer("abcdefg");输出sb.capacity();
长度为23,因为StringBuffer在为对象分配长度的时候,起始会分配一个字,也就是两个字节长度即(16位),每增加一个字符,长度就会在16的基础上加 1 。故而容量为16+7=23
10.charAt(int index) 返回字符串在指定索引的字符
//charAt(int index) 返回字符串在指定索引的字符
System.out.println(sb8.charAt(2));
/*输出为:
*c
*/