步骤1:是否是同一个对象
步骤2:是否是同一个对象-特例
步骤3:内容是否相同
步骤4:是否以子字符串开始或者结束
步骤5:练习-比较字符串
步骤6:答案-比较字符串
示例 1 : 是否是同一个对象
str1和str2的内容一定是一样的!
但是,并不是同一个字符串对象
package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light" ;
String str2 = new String(str1);
//==用于判断是否是同一个字符串对象
System.out.println( str1 == str2);
}
}
|
示例 2 : 是否是同一个对象-特例
str1 = "the light" ;
str3 = "the light" ;
|
一般说来,编译器每碰到一个字符串的字面值,就会创建一个新的对象
所以在第6行会创建了一个新的字符串"the light"
但是在第7行,编译器发现已经存在现成的"the light",那么就直接拿来使用,而没有进行重复创建
package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light" ;
String str3 = "the light" ;
System.out.println( str1 == str3);
}
}
|
示例 3 : 内容是否相同
使用equals进行字符串内容的比较,必须大小写一致
equalsIgnoreCase,忽略大小写判断内容是否一致
package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light" ;
String str2 = new String(str1);
String str3 = str1.toUpperCase();
//==用于判断是否是同一个字符串对象
System.out.println( str1 == str2);
System.out.println(str1.equals(str2)); //完全一样返回true
System.out.println(str1.equals(str3)); //大小写不一样,返回false
System.out.println(str1.equalsIgnoreCase(str3)); //忽略大小写的比较,返回true
}
}
|
示例 4 : 是否以子字符串开始或者结束
startsWith //以...开始
endsWith //以...结束
|
package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light" ;
String start = "the" ;
String end = "Ight" ;
System.out.println(str1.startsWith(start)); //以...开始
System.out.println(str1.endsWith(end)); //以...结束
}
}
|
更多内容,点击了解: https://how2j.cn/k/number-string/number-string-compare/326.html