iT邦幫忙

0

有關StringIndexOutOfBoundsException

  • 分享至 

  • xImage

大家好,小弟最近複習陣列
正在做一個題目,有關用一個陣列宣告裡面有很多名字
然後計算出裡面有多少個母音 "a,e,i,o,u"
目前用很笨的方法寫出來了,陣列裡面只有宣告五個以內都可以正常計算出來母音字數
但是問題來了
一旦我陣列只要宣告五個以上字串就會出現StringIndexOutOfBoundsException
想請教是哪裡出了問題了

public class AEIOU {

	public static void main(String[] args) {
	  String[]ca = {"snoopy","micky","lucky","kitty","derby"};
	  int count = 0;
	  for (int i =0; i<ca.length; i++) {
		  for(int k = 0; k<ca.length;k++) {
		  String sentence = ca[i];
  		  char ch = sentence.charAt(k);
		  if(ch == 'a'|| ch == 'e'|| ch =='i'|| ch == 'o'|| ch=='u') {
			  count ++;
		  }
		  }
	  }
	  	System.out.println("TotalVowel="+count);  
	  }
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2021-10-30 23:47:25
最佳解答
for (int i =0; i<ca.length; i++) {

第一層迴圈是 ca 陣列的長度,即「總共有幾個字串」

    for(int k = 0; k<ca.length;k++) {

第二層迴圈是「每個字串有幾個字元」
所以不是 ca.length
而是 ca[i].length
可以改成

    String sentence = ca[i];
    for(int k = 0; k<sentence.length;k++) {

試試看

另外
字串可以設定不同長度(不必全部都相同等於5)
可以測試程式的正確性

哦哦~!! 沒錯 這樣才是對的
剛剛誤打誤撞想說明明可以了,沒搞清楚哪個是哪個陣列的值
謝謝!

我要發表回答

立即登入回答