2015-03-15 2 views
0

Я пытаюсь разбить и сохранить ArrayList в двухмерном массиве. Я могу разделить каждый элемент ArrayList символом «:». Позже я могу сохранить результат, возвращаемый функцией split в одномерном массиве.Хранение одномерного массива до двухмерного

Мой содержание ArrayList выглядит следующим образом: A: B: C: D: е
р: д: г: S: T: U: V
м: п: о

В настоящее время, Я хотел бы сохранить результат в двухмерном массиве. я последовал следующий подход:

String a[]={}; 
String array[][] = {}; 

for(int i=0;i<abc.size();i++){ 
    a = abc.get(i).split(":"); 

    for(int j=0; j<a.length; j++){ 
     array[i][j] = a[j]; 
    } 
} 

Но я получаю ArrayIndexOutOfBounds исключение.

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 
     at com.exp.users.MainActivity.onCreate(MainActivity.java:54) 
     at android.app.Activity.performCreate(Activity.java:5231) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5146) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) 
     at dalvik.system.NativeStart.main(Native Method) 

Не могли бы вы поделиться, как это сделать?

ответ

1

массив инициализирован неправильно. Должен начинаться с new String[abc.size()][], а не {}. Кроме того, вы должны инициализировать вложенные массивы до new String[a.length]. Полный код:

List<String> abc = Arrays.asList("a:b:c:d:e", "p:q:r:s:t:u:v", "m:n:o"); 
String a[]; 
String array[][] = new String[abc.size()][]; 
for(int i=0;i<abc.size();i++){ 
    a = abc.get(i).split(":"); 
    array[i] = new String[a.length]; 
    for(int j=0; j<a.length; j++) array[i][j] = a[j]; 
} 
Смежные вопросы