-3

私は基本的に、入力を取り、3x3 サイズのマットと呼ばれる 2D 配列に格納したいと考えていました。

だから私は入力文字列を取り、それらを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これを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]

次のような 2D 配列が必要です。

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

また

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

入力文字列を2次元形式の配列に変換する必要があるだけで、うまくいかないことがたくさんあります。

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が発生するまでcharを取得し続けます。代わりにforループを実行することを検討してください。

于 2012-12-20T17:28:19.993 に答える