(java) ArrayList 分解,结果转换成 二维数组!!!

ArrayList<String> list = new ArrayList<String>(); // list已定义.
*** print.out(list). 显示 list 里有 “abcdefghigklmnABCDEF"。
需要把list的元素,每5个分一组。然后String[][] str = new String[4][5]。
结果需要,打印出的str[][] = a b c d e
f g h i g
k l m n A
B C D E F

麻烦高手帮忙写一下java code。。谢谢~

这个还用高手写?
import java.util.ArrayList;
import java.util.List;
public class StrTest {
public static void main(String[] args) {
String str="abcdefghigklmnABCDEF";
List<String> list=new ArrayList<String>();
String[][] strs = new String[4][5];
char[] chars=str.toCharArray();
for(int i=0;i<chars.length;i++){
list.add(chars[i]+"");
}
for(int i=0;i<4;i++){
for(int j=0;j<5;j++){
strs[i][j]=list.get(i*5+j);
}
}
System.out.print("str[][] =");
for(int i=0;i<4;i++){
for(int j=0;j<5;j++){
System.out.print(strs[i][j]+" ");
}

System.out.println();
System.out.print(" ");

}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-09
list中数据具体情况你说的不准,list的显示应该是这样的:[abcdefg, hijklmn, ABCDEF]。你只说了内容是abcdefghijklmnABCDEF,并没有说list有几个元素。不过不管几个元素都可以按下面的方法实现你的目标。
//合并ArrayList中的所有字符串
StringBuffer string=new StringBuffer();
for(String element:list){
string.append(element);
}
//将合并结果分解为字符数组
char[] chars=string.toString().toCharArray();
//创建你要的字符串二维数组
String[][] strs=new String[(chars.length-1)/5+1][];
//构造每一个字符串
for(int i=0;i<strs.length;i++){
strs[i]=new String[5];
for(int j=0;j<5;j++){
strs[i][j]=new String(chars,i*5+j,1);
}
}