首先创建一个类,我这里取名Str1,并在里面创一个主方法:
package cn.String1;
public class Str1 {
public static void main(String[] args) {
}
}
接下来我们定义两个字符串对象s1、s2,并直接输出s1 == s2:
package cn.String1;
public class Str1 {
public static void main(String[] args) {
String s1 = "ok";
String s2 = "ok";
System.out.println(s1==s2);
}
}
此时运行后可以得到结果如下:
D:\Java\jdk17\bin\java.exe -javaagent:D:\IDEA\lib\idea_rt.jar=8221:D:\IDEA\bin -Dfile.encoding=UTF-8 -classpath D:\code\gyw\out\production\Day08 cn.String1.Str1
true
通过java-11API文档看到equals(Object anObject)是将此字符串与指定对象进行比较,我们直接输出s1.equals(s2):
package cn.String1;
public class Str1 {
public static void main(String[] args) {
String s1 = "ok";
String s2 = "ok";
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
得到
D:\Java\jdk17\bin\java.exe -javaagent:D:\IDEA\lib\idea_rt.jar=8374:D:\IDEA\bin -Dfile.encoding=UTF-8 -classpath D:\code\gyw\out\production\Day08 cn.String1.Str1
true
true
此时我们可以知道 字符串一样的对象他们的值也相等,我们接着比较ok与OK:
public class Str1 {
public static void main(String[] args) {
String s1 = "ok";
String s2 = "OK";
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
//不区分大小写
System.out.println(s1.equalsIgnoreCase(s2));
}
}
得到:
D:\Java\jdk17\bin\java.exe -javaagent:D:\IDEA\lib\idea_rt.jar=8436:D:\IDEA\bin -Dfile.encoding=UTF-8 -classpath D:\code\gyw\out\production\Day08 cn.String1.Str1
false
false
true
并且借助API文档可以看出equalsIgnoreCase(String anotherString)
将此 String
与另一个 String
比较,忽略了大小写。