2014-03-04 220 views
0

我有一個方法來計算字符串的頻率,並記錄數組中記錄2個參數(freq和char)的字符的頻率。這是代碼:線程「main」中的異常java.lang.ArrayIndexOutOfBoundsException:-33

該錯誤是在該特定行:

this.frequencies並[c - 'A'] =新CharFrequency280(」」,0);

private void countFrequencies() { 
    //TODO 

    // Initialize the frequency of each possible character to zero. 
    for (int a=0; a<message.length(); a++){ 
     char c = message.charAt(a); 
     c = Character.toUpperCase(c); 
     this.frequencies[c - 'A' ] = new CharFrequency280(' ', 0); 
    } 

    // Count the frequency of each character. 
    for (int a=0; a<message.length(); a++){ 
     char c = message.charAt(a); 
     c = Character.toUpperCase(c); 
     this.frequencies[c - 'A'].incrementFreq(); 
    } 
} 
+1

這絕對不是JavaScript。 – Bergi

+0

是'this.frequencies'某種數組或列表,因爲您試圖在可能不存在的元素內創建一個'CharFrequency280'。 – Sebastien

回答

2

您必須閱讀的空格字符,這是ASCII 32

'A'是65.因此,我們有:c - 'A' = 32 - 65 = -33

+0

謝謝。這有助於解決我的問題。 – Mubs123

相關問題