新聞中心
java中的字符串比較方法?
1、首先,隨便創(chuàng)建一個(gè)有main方法的類。

2、然后定義兩個(gè)值相等的字符串變量a和b,都是“baiduABC我”。
3、然后就是用booleanequals(objectobj);來判斷這兩個(gè)字符串是否相等了:可以看到,返回的是true,說明相等。
4、為了驗(yàn)證完善,再定義一個(gè)字符串變量c,賦值“asd”,繼續(xù)比較。
5、運(yùn)行以后,可以看到運(yùn)行結(jié)果為false,說明不相等。
對(duì)于比較,在我們的第一反應(yīng)中就是第一個(gè)與第二個(gè)是否相等,在Java開發(fā)語言中,我們經(jīng)常是使用雙等號(hào)“==”來進(jìn)行兩個(gè)變量的判斷,比如3==3為正確(true),但是在Java中使用“==”進(jìn)行字符串判斷的時(shí)候,有時(shí)候兩個(gè)變量明明都是一模一樣的,但是他的結(jié)果卻一直是不相等(false),所以對(duì)于新手開發(fā)者來說,經(jīng)常會(huì)感到迷惑。通常在我們開發(fā)的時(shí)候,經(jīng)常使用的比較方法為a.equals(b)來進(jìn)行判斷兩個(gè)字符串是否相等。
在Java中,使用“==”一般比較的是兩個(gè)變量的地址,也就是說這兩個(gè)變量是在同一個(gè)內(nèi)存單元存儲(chǔ),他們的結(jié)果才會(huì)相等,對(duì)于兩個(gè)字符串String a = "1234"; String b = "1234";對(duì)于這兩個(gè)變量a和b,當(dāng)時(shí)用“==”和使用a.equals(b)的時(shí)候,他們的結(jié)果都是相等的,因?yàn)閍和b兩個(gè)字符串后是兩個(gè)字符串常量,他們在內(nèi)存中的存儲(chǔ)是在同一個(gè)地方,所以使用“==”和a.equals(b)兩個(gè)結(jié)果都是相等的;
但是對(duì)于String a = new String("1234); String b = new String("1234");雖然a和b的結(jié)果都是“1234”,但是使用“==”進(jìn)行判斷的時(shí)候,得到的結(jié)果卻是不相等的,因?yàn)榇藭r(shí)的a和b是兩個(gè)對(duì)象,他們所存在的內(nèi)存位置不相等,所以“==”他的判斷也就是不相等的了,此時(shí)使用a.equals(b)得到的結(jié)果就是正確的;
之所以使用a.equals(b)的結(jié)果是判斷出兩個(gè)字符串一樣,是因?yàn)镾tring類重寫了equal()的方法,他的比較方法是循環(huán)遍歷兩個(gè)字符串中的每個(gè)字符,只有當(dāng)兩個(gè)字符串中每個(gè)位置上的字符都一樣的時(shí)候,這個(gè)方法返回的值才會(huì)是相等(true);
因此在我們開發(fā)過程中,遇到字符串的比較,使用字符串的equals()的方法進(jìn)行判斷,這樣會(huì)減少很多的bug;同樣不僅僅對(duì)于字符串的比較,對(duì)于任何兩個(gè)對(duì)象的比較,我們都可以使用equal()方法;
看完上面的內(nèi)容,你了解Java字符串比較了嗎?
JAVA程序中如何輸出一個(gè)字符串中相同字符的個(gè)數(shù)?
用string下面的split方法就行了。偽代碼如下:string[] a = string.split(new char('_')),會(huì)把字符串拆分成以_分隔的幾個(gè)字符串_的個(gè)數(shù)就是數(shù)組a.length-1,第3個(gè)前面的么就是a[3]
java正則表達(dá)式匹配字符串?
你要先寫好正則表達(dá)式單純判斷用String的matches()方法就可以了public class Test {public static void main(String[] args) {String s = "1234";s.matches("\\d*");//\\d*為正則表達(dá)式,數(shù)字出現(xiàn)零次或多次,返回boolean類型}}
到此,以上就是小編對(duì)于java怎么判斷字符串相等了的問題就介紹到這了,希望這3點(diǎn)解答對(duì)大家有用。
文章題目:java中的字符串比較方法?(java怎么判斷字符串相等)
網(wǎng)址分享:http://www.dlmjj.cn/article/cosdcgh.html


咨詢
建站咨詢
