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);//falseSystem.out.println(s1 == s3);//falseSystem.out.println(s3 == s4);//true
//比较字符串内容是否相同System.out.println(s1.equals(s2));//trueSystem.out.println(s1.equals(s3));//trueSystem.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]