在Android中将字符串动态插入字符串数组中

时间:2011-08-04 08:25:39

标签: android dynamic arrays

我从服务器收到一些数据作为JSON响应。我提取了我需要的数据,我想将这些数据放入字符串数组中。我不知道数据的大小,所以我不能将数组声明为静态。我声明了一个动态字符串数组:

String[] xCoords = {};

之后我将数据插入数组:

   for (int i=0; i<jArray.length(); i++) {
         JSONObject json_data = jArray.getJSONObject(i);
         xCoords[i] = json_data.getString("xCoord");
   }

但我收到了

java.lang.ArrayIndexOutOfBoundsException
Caused by: java.lang.ArrayIndexOutOfBoundsException

将字符串动态插入字符串数组的方法是什么?

3 个答案:

答案 0 :(得分:38)

使用ArrayList虽然不是真的需要但只是学习

ArrayList<String> stringArrayList = new ArrayList<String>();

   for (int i=0; i<jArray.length(); i++) {
         JSONObject json_data = jArray.getJSONObject(i);
         stringArrayList.add(json_data.getString("xCoord")); //add to arraylist
   }

//if you want your array
String [] stringArray = stringArrayList.toArray(new String[stringArrayList.size()]);

答案 1 :(得分:6)

试试这个

 String stringArray[];        
 stringArray=new String[jArray.length()];
 String xCoords[]=new String[jArray.length()];;

       for (int i=0; i<jArray.length(); i++) {
             JSONObject json_data = jArray.getJSONObject(i);
             xCoords[i] = json_data.getString("xCoord");
       }

答案 2 :(得分:0)

Java中的

String数组具有定义的大小,声明时应提供该大小,您以后不能通过添加或删除元素来更改它,并且动态数组的纯概念不会在Java中退出。 Read detailed article here...

这是声明固定大小的数组的正确方法。

        String[] myString = new String[5];
        fruits[0]="hello";
        fruits[1]="hello";
        fruits[2]="hello";
        fruits[3]="hello";
        fruits[4]="hello";

相反,您可以使用列表执行类似的任务。该列表纯粹是动态的,您可以在运行时添加多个值。 这是使用JAVA在Android中声明列表的正确方法。

   ArrayList<String> fruits = new ArrayList<String>();
        fruits.add("Value 1");
        fruits.add("Value 2");
        fruits.add("Value 3");
        fruits.add("Value 4");
        fruits.add("Value 5");
        fruits.add("Value 6");
        fruits.add("Value 7");
// add as much values as per requirement
// you can also use loops to add multiple values