1.
结果截图:
解释:
java中当两个字符串相同时,只调用一处存储空间,也就是多个变量调用同一个地址的数据,而new是创建两个不同的空间。
2.
总结:
第一个true:s1与s2是同一个数
第二个false:s1!=s2
第三个false:类型不同不能比
第四个true:String.equals()方法可以比较两个字符串的内容。
3.
请查看String.equals()方法的实现代码,注意学习其实现方法
答:
String.equals()源代码:
1 public boolean equals(Object anObject) { 2 if (this == anObject) { 3 return true; 4 } 5 if (anObject instanceof String) { 6 String anotherString = (String)anObject; 7 int n = count; 8 if (n == anotherString.count) { 9 char v1[] = value; 10 char v2[] = anotherString.value; 11 int i = offset; 12 int j = anotherString.offset; 13 while (n-- != 0) { 14 if (v1[i++] != v2[j++]) 15 return false; 16 } 17 return true; 18 } 19 } 20 return false; 21 }
由代码可知,这个函数首先判断这两个对象是否引用同一个字符串对象,如果是直接比较是否相同,如果不是,则比较两个对象中的字符是否相等。而且比较的方式是比较单个字符。
4.
整理String类的length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明。
答:
(1)length():返回字符串的长度。
2) charAt():取字符串中的某一个字符,其中的参数index值得是字符串中序数。字符串的序数从0开始到length()-1。
(3) getChars():将字符从字符串复制到目标字符数组。
(4) replace():将字符串中的所有oldChar替换成newChar
(5) toUpperCase():全部字符变为大写,返回新字符串。
(6)toLowerCase():全部字符变为小写,返回新字符串。
(7) trim():去掉字符串首尾的空格
(8) toCharArray():将该String对象转换成char数组。