【问题标题】:Convert Arraylist into a 2d Array?将 Arraylist 转换为二维数组?
【发布时间】:2012-12-20 17:24:00
【问题描述】:

我基本上想获取一个输入并将其存储到一个名为 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;

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

【问题讨论】:

    标签: java arrays arraylist multidimensional-array


    【解决方案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 循环。

    【讨论】:

    • parts[count/3][count%3] = text;它说我不能从 char 转换为 string,我不确定这是什么意思
    猜你喜欢
    • 1970-01-01
    • 2020-09-10
    • 2023-04-03
    • 2012-06-23
    • 2013-02-21
    • 2020-10-04
    • 2011-07-01
    • 2012-02-27
    • 2020-11-15
    相关资源
    最近更新 更多