大家好,小弟最近複習陣列
正在做一個題目,有關用一個陣列宣告裡面有很多名字
然後計算出裡面有多少個母音 "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);
}
}
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)
可以測試程式的正確性