2012-12-08 49 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

好的..谢谢!会试一试并接受你的回答... –

相关问题