[英]Storing one dimensional array to two dimensional
I am trying to split and store an ArrayList in a two dimensional array. 我正在尝试将ArrayList拆分并存储在二维数组中。 I am able to split every ArrayList item by ":" character.
我可以用“:”字符分割每个ArrayList项。 Later I am able to store the result returned by the split function in one dimensional array.
稍后,我能够将split函数返回的结果存储在一维数组中。
My ArrayList content is as follows: a:b:c:d:e 我的ArrayList内容如下:a:b:c:d:e
p:q:r:s:t:u:v 号码:问:R:S:T:U:v
m:n:o M:N:○
Now, I would like to store the result in two dimensional array. 现在,我想将结果存储在二维数组中。 I followed the following approach:
我遵循以下方法:
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];
}
}
But, I am getting ArrayIndexOutOfBounds exception. 但是,我收到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)
Could anyone please share how to do it? 有人可以分享如何做吗?
array is initialized incorrectly. 数组初始化不正确。 Should start out as
new String[abc.size()][]
, not {}
. 应该以
new String[abc.size()][]
,而不是{}
new String[abc.size()][]
。 Also, you must initialize nested arrays to new String[a.length]
. 另外,您必须将嵌套数组初始化为
new String[a.length]
。 Full code: 完整代码:
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];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.