第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

public class HelloWorld {

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

// 定義一個字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

? ? ? ??

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

int num = 0;

? ? ? ??

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

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

{

? ? ? ? ? ? // 獲取每個字符,判斷是否是字符a

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

? ? ? ? ? ? ? ? // 累加統(tǒng)計次數(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
?他們之間的比較,應用雙等號(==),比較的是他們的值。
2.復合數(shù)據(jù)類型(類)
?當他們用(==)進行比較的時候,比較的是他們在內(nèi)存中的存放地址,所以,除非是同一個new出來的對象,他們的比較后的結(jié)果為true,否則比較后結(jié)果為false。 JAVA當中所有的類都是繼承于Object這個基類的,在Object中的基類中定義了一個equals的方法,這個方法的初始行為是比較對象的內(nèi)存地 址,但在一些類庫當中這個方法被覆蓋掉了,如String,Integer,Date在這些類當中equals有其自身的實現(xiàn),而不再是比較類在堆內(nèi)存中的存放地址了。
?對于復合數(shù)據(jù)類型之間進行equals比較,在沒有覆寫equals方法的情況下,他們之間的比較還是基于他們在內(nèi)存中的存放位置的地址值的,因為Object的equals方法也是用雙等號(==)進行比較的,所以比較后的結(jié)果跟雙等號(==)的結(jié)果相同。

10 回復 有任何疑惑可以回復我~
#1

默默努力的友人A

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

默默努力的友人A

是不是這樣認為呢?如果是 題目中String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; 因為是string 那用equals比較的就是值?為什么不能單獨用equals呢 a是值???能再稍微詳細講下嗎?
2019-12-06 回復 有任何疑惑可以回復我~
  1. 基本數(shù)據(jù)類型,應用雙等號(==),比較的是他們的值。?

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

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

    是不是這樣認為呢?

    如果是

    題目中String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; 因為是string 那用equals比較的就是值?為什么不能單獨用equals呢 a是值啊?有大佬知道嗎?


0 回復 有任何疑惑可以回復我~

// 定義一個字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

? ? ? ??

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

int num = 0;

? ? ? ??

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

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 回復 有任何疑惑可以回復我~
charAt獲取的是字符char,char沒有equals方法,得先轉(zhuǎn)成Character才能用equals

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

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

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

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

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號