亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

我用的這種方法為什么輸出a出現的次數為49,有大神可以幫忙看一下嗎?

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

// 定義一個字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

? ? ? ??

? ? ? ? // 出現次數

int num = 0;

? ? ? ? int i=0;

? ? ? ? char st=s.charAt(i);

? ? ? ? ?// 循環遍歷每個字符,判斷是否是字符 a ,如果是,累加次數

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

{

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

if (st=='a') {

? ? ? ? ? ? ? ? // 累加統計次數

num++;?

}

}

System.out.println("字符a出現的次數:" + num);

}


正在回答

6 回答

因為 ?int i=0; ?所以?s.charAt(i); 就是 ?s.charAt(0) ? 。

因為s的下標為0的就是a。所以?char st=s.charAt(i); 就等于a了。



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

st的賦值在循環外,也就是循環內st的值一直沒變,每一次判斷都是st等于a

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

為啥放循環外邊,還自己定義一個i變量

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

?char st=s.charAt(i);? ? 這句話要放進循環里面啊

你這樣第一個是 a? 的話? ? ?char st=s.charAt(0);? ? ? st就一直是 a 了? ? 所以才會輸出49吧

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

阿拉斯君 提問者

st定義在外面就是全局變量值不變了對嗎?
2019-01-29 回復 有任何疑惑可以回復我~

我也是個小白,不知道行不行,你試試

????????String?s?=?"aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";	
	int?num=0;		
	for?(int?i?=?0;?i?<?s.length();?i++){
	//?獲取每個字符,判斷是否是字符a
	char?st=s.charAt(i);	
	if?(st=='a')?{
	//?累加統計次數	
	num++;			
	}	
	}	
	System.out.println(num);


0 回復 有任何疑惑可以回復我~
String?s?=?"aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";		int?num=0;		for?(int?i?=?0;?i?<?s.length();?i++)		{			//?獲取每個字符,判斷是否是字符a			char?st=s.charAt(i);			if?(st=='a')?{				//?累加統計次數				num++;			}		}		System.out.println(num);


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

舉報

0/150
提交
取消

我用的這種方法為什么輸出a出現的次數為49,有大神可以幫忙看一下嗎?

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

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號