最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

加粗斜體部分為什么只能用 == 而不能用equals()?不是說==比較的是引用地址嗎? a 字符應(yīng)該是內(nèi)容吧

public class HelloWorld {

? ? public static void main(String[] args) {

// 定義一個(gè)字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

? ? ? ??

? ? ? ? // 出現(xiàn)次數(shù)

int num = 0;

? ? ? ??

? ? ? ? ?// 循環(huán)遍歷每個(gè)字符,判斷是否是字符 a ,如果是,累加次數(shù)

for (int i=0;i<s.length();i++)

{

? ? ? ? ? ? // 獲取每個(gè)字符,判斷是否是字符a

if (s.charAt(i)=='a') {

? ? ? ? ? ? ? ? // 累加統(tǒng)計(jì)次數(shù)

num++;?

}

}

System.out.println("字符a出現(xiàn)的次數(shù):" + num);

}

}


正在回答

5 回答

java中的數(shù)據(jù)類型,可分為兩類:
1.基本數(shù)據(jù)類型,也稱原始數(shù)據(jù)類型。byte,short,char,int,long,float,double,boolean
?他們之間的比較,應(yīng)用雙等號(hào)(==),比較的是他們的值。
2.復(fù)合數(shù)據(jù)類型(類)
?當(dāng)他們用(==)進(jìn)行比較的時(shí)候,比較的是他們?cè)趦?nèi)存中的存放地址,所以,除非是同一個(gè)new出來的對(duì)象,他們的比較后的結(jié)果為true,否則比較后結(jié)果為false。 JAVA當(dāng)中所有的類都是繼承于Object這個(gè)基類的,在Object中的基類中定義了一個(gè)equals的方法,這個(gè)方法的初始行為是比較對(duì)象的內(nèi)存地 址,但在一些類庫當(dāng)中這個(gè)方法被覆蓋掉了,如String,Integer,Date在這些類當(dāng)中equals有其自身的實(shí)現(xiàn),而不再是比較類在堆內(nèi)存中的存放地址了。
?對(duì)于復(fù)合數(shù)據(jù)類型之間進(jìn)行equals比較,在沒有覆寫equals方法的情況下,他們之間的比較還是基于他們?cè)趦?nèi)存中的存放位置的地址值的,因?yàn)镺bject的equals方法也是用雙等號(hào)(==)進(jìn)行比較的,所以比較后的結(jié)果跟雙等號(hào)(==)的結(jié)果相同。

10 回復(fù) 有任何疑惑可以回復(fù)我~
#1

默默努力的友人A

基本數(shù)據(jù)類型,應(yīng)用雙等號(hào)(==),比較的是他們的值。 復(fù)合數(shù)據(jù)類型(類) 用(==)進(jìn)行比較的時(shí)候,比較的是他們?cè)趦?nèi)存中的存放地址,而equals的方法原本也是比較地址的,但在一些類庫當(dāng)中這個(gè)方法被覆蓋掉了,如String,Integer,Date在這些類當(dāng)中equals有其自身的實(shí)現(xiàn),而不再是比較類在堆內(nèi)存中的存放地址了,就是所謂比較值。
2019-12-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

默默努力的友人A

是不是這樣認(rèn)為呢?如果是 題目中String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; 因?yàn)槭莝tring 那用equals比較的就是值?為什么不能單獨(dú)用equals呢 a是值?。磕茉偕晕⒃敿?xì)講下嗎?
2019-12-06 回復(fù) 有任何疑惑可以回復(fù)我~
  1. 基本數(shù)據(jù)類型,應(yīng)用雙等號(hào)(==),比較的是他們的值。?

  2. 2.復(fù)合數(shù)據(jù)類型(類)?用(==)進(jìn)行比較的時(shí)候,比較的是他們?cè)趦?nèi)存中的存放地址,?

    而equals的方法原本也是比較地址的,但在一些類庫當(dāng)中這個(gè)方法被覆蓋掉了,如String,Integer,Date在這些類當(dāng)中equals有其自身的實(shí)現(xiàn),而不再是比較類在堆內(nèi)存中的存放地址了,就是所謂比較值。

    是不是這樣認(rèn)為呢?

    如果是

    題目中String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; 因?yàn)槭莝tring 那用equals比較的就是值?為什么不能單獨(dú)用equals呢 a是值?。坑写罄兄绬??


0 回復(fù) 有任何疑惑可以回復(fù)我~

// 定義一個(gè)字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

? ? ? ??

? ? ? ? // 出現(xiàn)次數(shù)

int num = 0;

? ? ? ??

? ? ? ? ?//把字符串s轉(zhuǎn)換為byte數(shù)組并for循環(huán);定義一個(gè)字符串a(chǎn)并轉(zhuǎn)換為byte數(shù)組;兩個(gè)數(shù)組進(jìn)行比較

byte[] ch = s.getBytes();

for (int i = 0; i < ch.length; i++) {

String str = "a";

byte[] br = str.getBytes();

if(br[0] == ch[i]){

num++;

}

}

System.out.println("8字符a出現(xiàn)的次數(shù):" + num);

}



https://img1.sycdn.imooc.com//5cee80fe0001f24d06750331.jpg


0 回復(fù) 有任何疑惑可以回復(fù)我~
charAt獲取的是字符char,char沒有equals方法,得先轉(zhuǎn)成Character才能用equals

public?class?HelloWorld?{
????public?static?void?main(String[]?args)?{
//?定義一個(gè)字符串
????????String?s?=?"aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
????????//?出現(xiàn)次數(shù)
????????int?num?=?0;
????????//?循環(huán)遍歷每個(gè)字符,判斷是否是字符?a?,如果是,累加次數(shù)
????????for?(int?i=0;i<s.length();i++)
????????{
????????????//?獲取每個(gè)字符,判斷是否是字符a
????????????if?(((Character)(s.charAt(i))).equals('a')){
????????????????//?累加統(tǒng)計(jì)次數(shù)
????????????????num++;
????????????}
????????}
????????System.out.println("字符a出現(xiàn)的次數(shù):"?+?num);
????}
}
5 回復(fù) 有任何疑惑可以回復(fù)我~

charAt()是獲取字符,‘a(chǎn)’是字符,你說的區(qū)別是比較字符串

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

加粗斜體部分為什么只能用 == 而不能用equals()?不是說==比較的是引用地址嗎? a 字符應(yīng)該是內(nèi)容吧

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)