string比較java
A. 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。
第二種情況不是因為比較有與第一種有差異,而是因為聲明有差異,第二種聲明方法在聲明的時候有堆或堆棧 共用的現象,也就是說 在聲明的時候如果如果聲明為類屬性他會檢查在堆棧中有沒有與現在聲明的是相同結構的字元串。如果有就直接將地址指向已有內存地址。聲明在方法內部的局部變數原理一樣只不過他是堆棧共享。
B. Java中如何判斷兩個String是否相等
1. 在java中,不能用「==」和「!=」來判斷兩個字元串是否相等。因為String是引用類型,而不是基本數據類型。
故它們的比較是使用地址和值
來比較,因為它們是不同的對象,有不同的地址。故str1==str2永遠是false,而str1!=str2永遠都是true。
2. Java中必須使用string1.equals(string2)來進行判斷
string s1="Hello";
string s2="Hello";
則(s1==s2)=true;
因為他們指向的同一個對象。
String s1=new String("Hello");
String s2=new String("Hello");
則(s1==s2)=false
如果把其他變數的值賦給s1和s2,即使內容相同,
由於不是指向同一個對象,也會返回false。
所以建議使用equals(),因為equals比較的才是真正的內容
3.案例
String string1=new String( "aaa" );
String string2=new String( "aaa" );
這兩個字元串當然應該是相等的。
如果用表達式string1==string2,則該表達式的值為false
如果用表達式string1.equals(string2),則該表達式的值為true
C. JAVA如何進行字元串比較
1、首先,隨便創建一個有main方法的類。
D. java中怎麼判斷兩個string是否相等
通過equals進行判斷字元串是否不相等.
String中equals()方法覆蓋了父類的Object方法,比較規則為:如果兩個對象的類型一致,並且內容一致,則返回true,否則返回false.
例如:
String a = "abc";
String b = "abc";
if(a.equals(b)){//通過equals比較a,b是否相等
//相等
}else{
//不想等
}
E. 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;
F. java如何實現字元串比較大小排序
使用 String.compareTo 方法:
compareTo() 的返回值是int, 它是先比較對應字元的大小(ASCII碼順序)
1、如果字元串相等返回值0
2、如果第一個字元和參數的第一個字元不等,結束比較,返回他們之間的差值(ascii碼值)(負值前字元串的值小於後字元串,正值前字元串大於後字元串)
3、如果第一個字元和參數的第一個字元相等,則以第二個字元和參數的第二個字元做比較,以此類推,直至比較的字元或被比較的字元有一方全比較完,這時就比較字元的長度.
例:
String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1長度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1長度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII碼是97,"1"的的ASCII碼是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII碼是97,"c"的ASCII碼是99,所以返回-2)
G. JAVA中String類型變數的比較
比較內容用equals這種說法其實不完全正確的,因為String重寫了Object的equals方法,重寫的這個方法就是比較字元串的內容。
如果你用自己定義的對象的equals方法,則比較的是對象的地址是否相同,這是Object的默認比較方式。
所以你只要記住,對於字元串來說,都要用equals來比較,因為我們不可能會去比較一個String的地址是否相同,沒有任何意義。
H. java中string能比較大小嗎
字元串的比較用string.compareTo(str);不過不是單純的類似數字的比較大小。具體可以看源碼。
這個方法是作用:
1.從兩個字元串最開始位置匹配到兩個字元串較短的最後,即從0到Math.min(len1, len2),然後獲取每個位置的字元char1和char2,如果char1和char2不想等,返回char1-char2
2.如果0到Math.min(len1, len2)的位置的字元都相等,返回兩字元串長度的差,即length1-length2
具體來說
"a".compareTo("c")、"abc".compareTo("c")都返回-2。上述情況1
"abc".compareTo("abcdefg")返回-4。上述情況2
I. java中怎樣比較String和字元串是否相等
【關鍵字】java 比較 String int Integer BigDecimal 變數 相等【內容】在java中如果想要比較兩String類型變數是否相等,可以使用equals函數,函數寫法如下: String a;String b; a.equals(b)返回boolean類型。 如果比較String和字元串是否相等,如下寫法。"abc".equals(a); 這里字元串使用""括起來,不可以使用''。java中''表示的char型,所以''中只可以有一個字元。 parseInt(a)==b){}if(a. equals(c. toString())){}if(a. toString())){}使用Eclipse等IDE開發環境(Integrated Development Environment集成開發環境)的提示功能,可以很方便的找到這些函數.另外,也可以從java的一些API文檔中找到.
J. java string怎麼比較大小
我是個小白。。。。不太明白直接比較的方法
但可以這樣,你定義兩個INT型數據,讓他們分別等於兩個字元串的長度,再把他們做比較。
例如
String a="asjdgjawdb";
int a2=a.length;
String b="dasuighaisjbi";
int b2=b.length;
之後比較a2與b2就可以啦。