将Arraylist转换为2d数组?

时间:2012-12-20 17:24:01

标签: java arrays arraylist multidimensional-array

我基本上想要输入并将其存储到名为mat的2D数组中,其大小为3x3

所以我尝试输入一个输入字符串,将它们转换为char然后将它们放入数组列表中,这就是我到目前为止写的内容。

System.out.println("Enter Message");
Scanner Scanner1 = new Scanner(System.in);
String plaintext = Scanner1.next();
int counter = 0;
// will get chars till the end of input length
while(plaintext.length() > 0){
    char text = plaintext.charAt(counter);
    counter++;
    ArrayList mylist = new ArrayList();
    mylist.add(text);
    System.out.println(mylist);          // chars of string
}

如何将此List转换为A 2D

我尝试了其他的东西,我尝试使用像这样的分割

System.out.println("Enter Message");
Scanner Scanner1 = new Scanner(System.in);
String plaintext = Scanner1.next();

String[] parts = plaintext.split("");

for (int i=1; i<=3; i++){
     System.out.println(parts[i]);
}

这给了我     H     Ë     升

排序为1行,3列 Arraylist的输出是这样的

[H]
[e]
[l]
[l]
[o]

我想要一个像这样的2D数组:

[H][e][l];
[l][o][w];
[x][y][z];

H e l;
l o w;
x y z;

我只需要将输入字符串转换为数组的二维形式,我一直在尝试很多我无法正确使用它。

1 个答案:

答案 0 :(得分:1)

考虑:

 String[][] parts = new String[3][3];

 // then do this in your loop instead of adding to the list
 parts[count/3][count%3] = text;

但是你也有其他问题。在你的第一个循环中,长度将始终> 0,你会得到一个字符,直到你得到一个IndexOutOfBoundsException。考虑改为执行for循环。