黑马程序员Java个人笔记
目录
字符串比较
== 比较
boolean equals
boolean equalsIgnoreCase
键盘录入和定义的字符串的比较
StringBuilder
打印
编辑
添加元素
反转
获取长度
toString
练习
对称字符串
拼接字符串
StringJoiner
概述
编辑
构造方法
只有间隔符号
间隔符号、开始符号、结束符号
成员方法
length
String、StringBuilder、StringJoiner总结
字符串比较
== 比较
- 基本数据类型:比的是数据值
- 引用数据类型的:比的是地址值
boolean equals
- 完全一样,结果才是 true,否则为 false
public class Demo1 {public static void main(String[] args) {String s1 = new String("abc");String s2 = "abc";String s3 = "Abc";boolean result1 = s1.equals(s2);boolean result2 = s1.equals(s3);System.out.println(result1); // trueSystem.out.println(result2); // false}
}
boolean equalsIgnoreCase
- 忽略大小写的比较
public class Demo1 {public static void main(String[] args) {String s1 = new String("abc");String s2 = "abc";String s3 = "Abc";boolean result1 = s1.equalsIgnoreCase(s2); // trueboolean result2 = s1.equalsIgnoreCase(s3); // trueSystem.out.println(result1);System.out.println(result2);}
}
键盘录入和定义的字符串的比较
- 结果为false
import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String str1 = sc.next(); // 输入abc// 代码中再定义一个字符串 abcString str2 = "abc";// 用 == 比较System.out.println(str1 == str2); // false}
}
StringBuilder
- StringBuilder 可以看成一个容器,创建之后里面的内容是可变的
- 作用:提高字符串的操作效率
- 只有一个StringBuilder对象,在拼接过程中,不会产生没有用的字符串
- 使用场景
- 字符串拼接
- 字符串反转
打印
- 因为 StringBuilder 是 Java 已经写好的类
- java 在底层对它做了一些特殊处理
- 打印对象不是地址值,而是属性值,也就是容器里的内容
- 如果用空参构造来创建 StringBuilder 容器对象,那这个容器里面一开始是空的
添加元素
反转
- 字符串本身是不能发生变化的,只有返回值才是截取、替换等之后的结果
- 在 StringBuilder 中的内容,是可以发生变化的
- reverse(); 之后,容器里的内容直接反转了
获取长度
toString
- sb 是 StringBuilder 类型的,只是个容器,来帮助我们操作字符串的工具
- 用 toString 方法把它变成字符串
- 再把 StringBuilder 变回字符串
public class Demo1 {public static void main(String[] args) {StringBuilder sb = new StringBuilder();sb.append("aaa");sb.append("bbb");sb.append("ccc");sb.append("ddd");System.out.println(sb); // aaabbbcccddd// 再把 StringBuilder 变回字符串String str = sb.toString();System.out.println(str); // aaabbbcccddd}
}
练习
对称字符串
import java.util.Scanner;
public class Demo1 {public static void main(String[] args) {// 键盘录入一个字符串Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串");String str = sc.next();// 反转键盘录入的字符串String res = new StringBuilder().append(str).reverse().toString();// 比较if (str.equals(res)) {System.out.println("当前字符串是对称字符串");} else {System.out.println("当前字符串不是对称字符串");}}
}
拼接字符串
public class Demo1 {public static void main(String[] args) {// 定义数组int[] arr = {1, 2, 3};// 调用方法把数组变成字符串String str = arrToString(arr);System.out.println(str);}public static String arrToString(int[] arr){StringBuilder sb = new StringBuilder();sb.append("[");for(int i = 0; i < arr.length; i++){if(i == arr.length-1){sb.append(arr[i]);} else {sb.append(arr[i]).append(", ");}}sb.append("]");return sb.toString();}
}
StringJoiner
概述
构造方法
只有间隔符号
import java.util.StringJoiner;
public class Demo1 {public static void main(String[] args) {// 创建一个对象,并指定间隔符号。开始符号、前缀符号StringJoiner sj = new StringJoiner(",", "[", "]");// 添加元素sj.add("aaa").add("bbb").add("ccc");// 打印System.out.println(sj); // [aaa,bbb,ccc]}
}
间隔符号、开始符号、结束符号
import java.util.StringJoiner;
public class Demo1 {public static void main(String[] args) {// 创建一个对象,并指定间隔符号。开始符号、前缀符号StringJoiner sj = new StringJoiner(",", "[", "]");// 添加元素sj.add("aaa").add("bbb").add("ccc");// 打印System.out.println(sj); // [aaa,bbb,ccc]}
}
成员方法
length
所有字符的总个数
import java.util.StringJoiner;
public class Demo1 {public static void main(String[] args) {// 创建一个对象,并指定间隔符号、开始符号、结束符号StringJoiner sj = new StringJoiner(",", "[", "]");// 添加元素sj.add("aaa").add("bbb").add("ccc");int len = sj.length(); System.out.println(len); // 13// 打印System.out.println(sj); // [aaa,bbb,ccc],包括符号,一共13个字符}
}