14. 字符串
14.1 String类的构造方法
public class StringDemo01 {
public static void main(String[] args) {
//public String():创建一个空白字符串对象,不含有任何内容
String s1 = new String();
//public String(char[] chs):根据字符数组的内容,来创建字符串对象
char[] chs = {'a', 'b', 'c'};
String s2 = new String(chs);//abc
//public String(byte[] bys):根据字节数组的内容,来创建字符串对象
byte[] bys = {97, 98, 99};
String s3 = new String(bys);//abc
//String s = “abc”; 直接赋值的方式创建字符串对象,内容就是abc,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象
String s4 = "abc";//abc
}
}
14.2 操作字符串
14.2.1 字符串比较
- 比较基本数据类型:比较的是具体的值
- 比较引用数据类型:比较的是对象地址值
equals方法
public class StringDemo02 {
public static void main(String[] args) {
//构造方法的方式得到对象
char[] chs = {'a', 'b', 'c'};
String s1 = new String(chs);
String s2 = new String(chs);
//直接赋值的方式得到对象
String s3 = "abc";
String s4 = "abc";
//比较字符串对象地址是否相同
System.out.println(s1 == s2);//false
System.out.println(s1 == s3);//false
System.out.println(s3 == s4);//true
//比较字符串内容是否相同
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//true
System.out.println(s3.equals(s4));//true
}
}
14.2.2 遍历字符串
public class Test2字符串直接遍历 {
public static void main(String[] args) {
//两个方法:
//charAt():会根据索引获取对应的字符
//length(): 会返回字符串的长度
Scanner sc = new Scanner(System.in);
String str = sc.next();
for (int i = 0; i < str.length(); i++) {
//i 依次表示字符串的每一个索引
//索引的范围:0 ~ 长度-1
//根据索引获取字符串里面的每一个字符
//ctrl + alt + V 自动生成左边的接受变量
char c = str.charAt(i);
System.out.println(c);
}
}
}
14.3 StringBuilder
public class StringBuilderDemo3 {
public static void main(String[] args) {
//1.创建对象
StringBuilder sb = new StringBuilder("abc");
//2.末尾添加元素(可以链式编程)
sb.append(1).append(true);
//反转
sb.reverse();
//获取长度
int len = sb.length();
//3.再把StringBuilder变回字符串
String s = sb.toString();
System.out.println(s);
}
}
14.4 StringJoiner
//1.创建一个对象,并指定中间的间隔符号
StringJoiner sj = new StringJoiner("---");
//StringJoiner sj = new StringJoiner(", ","[","]");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
int len = sj.length();
//3.打印结果
System.out.println(sj);//aaa---bbb---ccc
//String str = sj.toString();
//System.out.println(str);//[aaa, bbb, ccc]