2012-12-08 51 views
0

的Android 2.3.3如何訪問Android中的字符串數組位置?

這是我的代碼...

String[] expression = {""}; //globally declared as empty 

somewhere in the code below, I am trying to assign a string to it. 

expression[0] = "Hi"; 

I keep getting the following error... 
12-08 22:12:19.063: E/AndroidRuntime(405): java.lang.ArrayIndexOutOfBoundsException 

有人可以幫助我這個.. 我們可以訪問該指數爲0,直接爲我在做什麼?

實際代碼:::

static int x = 0; // global declaration 
String[] assembledArray = {""}; // global declaration 

assembleArray(strSubString, expression.charAt(i)); //Passing string to the method 

//Method Implementation 
private void assembleArray(String strSubString, char charAt) { 
     // TODO Auto-generated method stub 

     assembledArray[x] = strSubString; 
     assembledArray[x+1] = String.valueOf(charAt); 
     x = x+2; 

    } 
+1

對我來說工作很好:http://ideone.com/WERQ3H ...你能展示從創建到修改的完整代碼嗎? – Eric

+0

它也適用於我。 –

+0

@Eric :::用代碼編輯問題.. –

回答

1

的問題是不是在assembledArray[x];它在assembledArray[x+1]

在第一次迭代時,x+1 = 1,所以你不能訪問該數組的部分。我建議使用一個動態數組,又名一個ArrayList

ArrayList<String> assembledArray = new ArrayList<String>(); // global declaration 

assembleArray(strSubString, expression.charAt(i)); //Passing string to the method 

//Method Implementation 
private void assembleArray(String strSubString, char charAt) { 
    assembledArray.add(strSubString); 
    assembledArray.add(String.valueOf(charAt)); 
} 

這樣,Java的需要調整大小的照顧,而你並不需要保存的x軌道。

+0

好的..但你能告訴我,爲什麼我不能訪問索引x + 1? –

+0

數組不會在Java中調整自己的大小。你的數組長度爲1,所以它只有索引'0'。當你嘗試訪問索引'1'時,這是超出界限(界限從0到0),所以Java放棄並引發異常。 – Eric

+0

好的..謝謝!會試一試並接受你的回答... –

相關問題