Ⅰ java中的字元串比較方法
java中的字元串比較方法:
1)string1.equals(string2)
2) str1==str2 。
java中字元串的比較是==比較引用,equals 比較值的做法。但是不同的聲明方法字元串的比較結果也是不同的。
例如: String str1=new String("a");
String str2=new String("a");
str1==str2 輸出false
str1.equals(str2) 輸出true
而如果這樣聲明
String str1="a";
String str2="a";
str1==str2 輸出true
str1.equals(str2) 輸出true
這是因為 equals 方法本來也是比較引用的字元串類在實現的時候重寫了該方法。
第一種聲明方法等於是聲明了兩個對象,用』==『比較是時候比較的是引用輸出的是false 由於他們的值相同用equals的時候就比較的是值了,輸出true。
第二種情況不是因為比較有與第一種有差異,而是因為聲明有差異,第二種聲明方法在聲明的時候有堆或堆棧 共用的現象,也就是說 在聲明的時候如果如果聲明為類屬性他會檢查在堆棧中有沒有與現在聲明的是相同結構的字元串。如果有就直接將地址指向已有內存地址。聲明在方法內部的局部變數原理一樣只不過他是堆棧共享。
Ⅱ java中兩個字元串如何比較大小
有三種方法實現
第一種直接用字元串類的compareTo方法:
Stringt1="20131011";
Stringt2="20131030";
intresult=t1.compareTo(t2);
第二種是把這個日期字元串轉換成long:
SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");
Dated1=sdf.parse(t1);
Dated2=sdf.parse(t2);
longresult=d1.getTime()-d2.getTime();
第三種是把日期字元串轉換成整形int:
intint1=Integer.parseInt(t1);
intint2=Integer.parseInt(t2);
intresult=int1-int2;
註:result大於0,則t1>t2;
result等於0,則t1=t2;
result小於0,則t1<t2;
Ⅲ java compareto 是怎麼比較的
java中的compareto方法,返回參與比較的前後兩個字元串的asc碼的差值。
如果兩個字元串首字母不同,則該方法返回首字母的asc碼的差值
參與比較的兩個字元串如果首字元相同,則比較下一個字元,直到有不同的為止,返回該不同的字元的asc碼差值,如果兩個字元串不一樣長,可以參與比較的字元又完全一樣,則返回兩個字元串的長度差值
Ⅳ java中比較兩個字元串是否相等的方法
你好,比較兩個字元串是否相等可以用equals方法。
比如要比較字元串變數a和字元串變數b是否相等就是a.equals(b)。這個表達式返回這個布爾值,為true表示相等,為false表示不相等。
Ⅳ java中如何比較兩個數組確定是否相等
兩個方法,第一個比較常規,第二個特別適合字元數組的判斷。
方法一:
char[] a = {'a', 'b'};
char[] b = {'a', 'f'}; //對a, b 數組賦值操作
if (a.length != b.length) {
System.out.print("兩個數組不相等");
return;
} else {
for (int i = 0; i < a.length; i++) {
if (a[i] != b[i]) {
System.out.print("兩個數組不相等");
return;
}
}
System.out.println("兩個數組不相等");
}
方法二:
char[] a = {'a', 'b'};
char[] b = {'a', 'f'}; //對a, b 數組賦值操作
String sa = String.valueOf(a);
String sb = String.valueOf(b);
if( sa.equals(sb) )
System.out.println("兩個數組相等");
else
System.out.println("兩個數組不相等");
Ⅵ java怎麼比較兩個對象是否相等
一、java中的基本數據類型(int、double、short、long、byte、float、boolean、char)判斷是否相等,直接使用"=="就行了,相等返回true,否則,返回false。
二、但是java中的引用類型的對象比較變態,假設有兩個引用對象obj1,obj2,
obj1==obj2 判斷是obj1,obj2這兩個引用變數是否相等,即它們所指向的對象是否為同一個對象。言外之意就是要求兩個變數所指內存地址相等的時候,才能返回true,每個對象都有自己的一塊內存,因此必須指向同一個對象才返回ture。
三、如果想要自定義兩個對象(不是一個對象,即這兩個對象分別有自己的一塊內存)是否相等的規則,那麼必須在對象的類定義中重寫equals()方法,如果不重寫equals()方法的話,默認的比較方式是比較兩個對象是否為同一個對象。
在Java API中,有些類重寫了equals()方法,它們的比較規則是:當且僅當該equals方法參數不是 null,兩個變數的類型、內容都相同,則比較結果為true。這些類包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常見的就這些了,具體可以查看API中類的equals()方法,就知道了。
Ⅶ Java compareTo方法是怎麼比較的
ToDoItem類的對象有3屬性,
這個compareTo()方法則是將一個ToDoItem對象作為參數,與調用該方法的對象做比較;
比較的方式:先比primary屬性的大小,如果相等,則比較secondary屬性,不比較item屬性。
比較的結果:如果比參數對象大,則返回+1,如果相等,則返回0,如果比參數小,則返回-1。
這樣說應該講明白了吧,如果有幫助採納下。
BTW平時這些問題可以多看幾個類似w3shool、runoob這些教程網站,很快就可以弄懂。
Ⅷ Java中怎麼比較兩個字元串是否相等
JAVA比較兩個字元串是否相等可以用equals方法或者是「==」。
equals 方法常常用來檢測兩個對象是否相等,即兩個對象的內容是否相等,如果只是比較對象的內容,而不比較對象來源和功能類型時,常用此方法。
「==」常用於用於比較引用和比較基本數據類型時是否具有不同的功能,比較基本數據類型,如果兩個值相同,則結果為true而在比較引用時,如果引用指向內存中的同一對象,結果為true。
(8)java比較方法擴展閱讀
equals 方法的特點:
1、自反性:x.equals(x)返回true;
2、對稱性:若x.equals(y)為true,則y.equals(x)亦為true;
3、傳遞性:若x.equals(y)為true且y.equals(z)也為true,則x.equals(z)亦為true;
4、一致性:x.equals(y)的第一次調用為true,那麼x.equals(y)的第二次、第三次、第n次調用也均為true,前提條件是沒有修改x也沒有修改y;
5、對於非空引用x,x.equals(null)永遠返回為false。
Ⅸ 在Java中用於比較的類和方法有哪些
對於Class
A;Class
B兩個類,比較它們有兩種比較
A
==
B
比較內存地址
A.equals(B)默認比較hashcode
第一種一般不達不到我們要的效果,所以一般選擇覆蓋類的equals方法來實現比較類
一般比較兩個類,會比較是不是一種類,類里的私有變數是否相等,具體看你的邏輯要求是什麼樣的!
Ⅹ java比較兩字元串是否相等有幾種方法
equal()