-3

我基本上想接受一个输入并将其存储到一个名为 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 e l

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

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

我想要一个像这样的二维数组:

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

或者

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

我只需要将我的输入字符串转换为二维形式的数组,我已经尝试了很多,但我无法做到正确。

4

1 回答 1

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 循环。

于 2012-12-20T17:28:19.993 回答