Java的比较方法

Java的比较方法,第1张

Java中的比较方法有很多种

有equals比较内容是否相同一般与判断语句相连。

String s="a";
String s1="A";
if(s.equals(s1)){
    System.out.println("相等");
}
else{
    System.out.println("不相等");
}//运行结果为不相等

有==号这个有值的情况下比较的是值如果是字符就比较首地址。

int a=5;
int b=5;
if(a==b){
System.out.println("相等");
}
else{
System.out.println("不相等");
}//这上面一段运行结果为相等


String s1="a";        //我们知道s1,s2,s3是对象,这个对象不是内容的持有者而是管理者
String s2=new String("a");//s2是新建一个地址,如果不建立新地址则s2不被创建会分配到常量池里
String s3=s1;        //这个意思是s3跟s1共同管理字符串的内容
if(s1==s2){
System.out.println("相等");
}
else{
System.out.println("不相等");
}//这段运行结果为不相等,这个情况下比较的是地址,s1与s2地址不一样,因为s2是新建了一个地址
if(s1==s3){
System.out.println("相等");
}
else{
System.out.println("不相等");
}//这里运行结果则是相等,因为s1,s3共同管理所以比较的地址是一样的

equalsIgnoreCase比较的是内容并且忽略大小写。

String s="a";
String s1="A";
if(s.equalsIgnoreCase(s1)){
    System.out.println("相等");
}
else{
    System.out.println("不相等");
}//运行结果为相等,因为比较的是内容,且忽略内容大小写

compareTo是对象与与方法的参数进行比较,仅用于相同两个数据类型的比较,

compareTo的返回是这样的if(指定数=参数)return 0;

                                           if(指定数>参数)return 1,指定数比参数大多数数则返回多少

                                            if(指定数<参数)return -1,指定数比参数小多数则返回负多少

String s1="a";
String s2="A";
String s3="A";
System.out.println(s1.compareTo(s2));    //输出为32,我们知道Ascll码表a为97,A为65,所以返回32
System.out.println(s2.compareTo(s1));    //输出为-32,看哪个对象前哪个对象后
                                          //s1.compareTo(s2),s1前s2后是s1-s2,97-65
                                           //s2.compareTo(s1),s2前s1后是s2-s1,65-97

System.out.println(s2.compareTo(s3));      //输出的是0;

对象与对象的比较是compare,比较的是首地址

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/757838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-01
下一篇 2022-05-01

发表评论

登录后才能评论

评论列表(0条)

保存