參考文章:這里;這里;這里
先上結(jié)論
C++中的string
類型可以使用==
和!=
來(lái)判斷兩個(gè)字符串的值是否相等;而JAVA不行,JAVA中==
和!=
是用來(lái)判斷兩個(gè)字符串的地址是否相同(或者說(shuō)是對(duì)象是否相同,即是否為同一個(gè)對(duì)象)。
C++中string
#include <iostream>
#include <string>
using namespace std;
int main()
{ string s1="abc",s2="abc";
if(s1==s2) cout<<"s1和s2相等";
else cout<<"s1和s2不相等";
return 0;
}
- 運(yùn)行結(jié)果
結(jié)果解釋:C++中可以利用==
來(lái)判斷兩個(gè)字符串的值是否相等。
JAVA中String
package hello;
public class TEMP {
public static void main(String args[]) throws IOException {
String s1="abc",s2="abc";
if(s1==s2) System.out.println("s1和s2相等");
else System.out.println("s1和s2不相等");
}
}
- 運(yùn)行結(jié)果
結(jié)果解釋:JAVA中==
來(lái)判斷兩個(gè)字符串的地址是否相同(或者說(shuō)是兩個(gè)字符串是否是同一對(duì)象),由于相同的字符串常量(程序中為"abc"
)在內(nèi)存中只會(huì)存在一份,所以兩個(gè)字符串指向的字符串常量是同一個(gè)地址,所以根據(jù)JAVA中,==
來(lái)判斷兩個(gè)字符串的地址是否相同的原則可知,s1和s2相等。
package hello;
public class TEMP {
public static void main(String args[]) {
String s1=new String("abc"),s2=new String("abc");
if(s1==s2) System.out.println("s1和s2相等");
else System.out.println("s1和s2不相等");
}
}
- 運(yùn)行結(jié)果
結(jié)果解釋:由于這兩個(gè)字符串分別創(chuàng)建了兩個(gè)對(duì)象(使用new
開(kāi)辟了兩段不同的存儲(chǔ)空間,所以兩個(gè)字符串的的地址也不同,只是兩個(gè)字符串對(duì)象所在地址中存儲(chǔ)的數(shù)值(字符)相同),所以根據(jù)JAVA中,==
來(lái)判斷兩個(gè)字符串的地址是否相同的原則可知,s1和s2不相等。
package hello;
public class TEMP {
public static void main(String args[]) {
String s1=new String("abc"),s2=new String("abc");
if(s1.equals(s2)) System.out.println("s1和s2相等");
else System.out.println("s1和s2不相等");
}
}
- 運(yùn)行結(jié)果
結(jié)果解釋:JAVA中利用equas()
(區(qū)分大小寫)成員函數(shù)來(lái)判斷兩字符串的值是否相等。
package hello;
public class TEMP {
public static void main(String args[]) {
String s1=new String("abc"),s2=new String("ABC");
if(s1.equalsIgnoreCase(s2)) System.out.println("s1和s2相等");
else System.out.println("s1和s2不相等");
}
}
- 運(yùn)行結(jié)果
結(jié)果解釋:JAVA中利用equalsIgnoreCase()
(不區(qū)分大小寫)成員函數(shù)來(lái)判斷兩字符串的值是否相等。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-420178.html
回顧結(jié)論
C++與JAVA之間存在著一些區(qū)別,我們需要重視區(qū)別才能更好地靈活學(xué)習(xí)和運(yùn)用不同的編程語(yǔ)言。
總之,C++中可以利用==
來(lái)判斷兩個(gè)字符串的值是否相等;而JAVA中必須使用String類的成員函數(shù)equals()
(區(qū)分大小寫)和equalsIgnoreCase()
(不區(qū)分大小寫)來(lái)判斷兩個(gè)字符串的值是否相等。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-420178.html
到了這里,關(guān)于【==是判斷相等嗎?---錯(cuò)辣】C++和JAVA中判斷字符串值相等的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!