20201224-杜飞强
总结
== 与 equals
通常String str = “ ab”;使用“ ”显式书写的代表字面量,存储在常量池中,而String str = new String(“ab”);,new创建的实例存储在堆中,它们的哈希值不同即System.identityHashCode( str) 不同
==
运算符,使用==比较两侧的变量所存储的值是否相等。eg:
``` java
String str = “ab”;
String strs = new String “ab”;
System.out.println(str == strs);
```
结果:false
分析:str 与strs的哈希值不同,结果为false。
equals
使用equals比较String实例中的字符序列是否相等。eg:
String str = “ab”;
String strs = new String “ab”;
System.out.println(str.equals(strs));
结果:true
分析:equals比较的是字符序列,它们的数值是相等的。
连接符+
连接符+表示可以将两个字符序列连接在一起组成一个新的字符序列,eg:
String s = "hello";
String t = "word";
String r = s + t;
System.out.println(r);
结果:helloword
特殊情况
当实例被final修饰时
final String s = "hello";
String t = "word";
String x = s+"word";
String h = "helloword";
String r = s + t;
System.out.println(x == h);
System.out.println(r == h);
System.out.println(r.equals(h));
结果:true
false
true
分析:(1)当实例被final修饰时,初始化之后的值不能再发生改变。
(2)r表示通过连接符+将两个字符序列连接在一起,相当于创建了一个实例。
(3)equals比较两个字符序列的值是否相等
拼接字符串(StringJoiner)
当需要处理多个字符序列时可以使用StringJoiner进行拼接eg:
StringJoiner(delimiter,prefix, suffix)
prefix :表示前缀
suffix:表示后缀
delimiter:定界符
CharSequence delimiter = ",";//拼接的字符序列用,隔开
StringJoiner sj = new StringJoiner(delimiter);
sj.add("hello");
sj.add("word");
sj.add("welcome");
String s = sj.toString();
System.out.println(s);
getChars(begin , end , target , start)
begin:表示从字符串那个索引开始
end:表示从字符串那个索引字符结束
target:表示将字符串[begin end)之间的字符复制到那个数组中
start:表示从目标数组的那个位置开始存放字符
吐槽
老师讲课的语速有点快,尽快适应上课方式
近期评论