3

私はJavaが初めてで、特定の方法で印刷する必要がある4つのintスタックがあります。私が使用している IDE は BlueJ です。

配列を次のように印刷したい

 |110|   |231|   |333|   |444|
 |111|   |232|   |334|   |447|
 |112|   |233|   |335|   |448|
 |113|   |234|   |336|   |449|
 |114|   |235|   |337|   |450|
 |115|   |236|   |338|   |451|

私はこれをしようとしてSystem.out.println("|"+stack1.pop()+"|")いますが、下から上に戻る方法がわからないため、問題が発生します。元。115 --> 231 に戻ります。各列はスタックを表します。

ありがとうございました!

4

3 に答える 3

2

String.format()一連の文字列を連結するよりも適切に使用する

System.out.println(String.format("|%s|\t|%s|\t|%s|\t|%s|",
                            stack1.pop(),stack2.pop(),stack3.pop(),stack4.pop()));

Stack要素を逆の順序で印刷したい場合はreverse、スタックだけを最初に

于 2013-02-12T04:15:40.283 に答える
2

コンソールでそれを行うことはできません。
代わりに、各スタックから値を出力してから、次のように下に移動できます。

System.out.println("|"+stack1.pop()+"|\t|"+stack2.pop()+"|\t|"+stack3.pop()+"|\t|"+stack4.pop()+"|" );

コメントどおりに編集- String.format(...)を使用できます。使用可能な書式設定オプションについては、こちらを確認してください

于 2013-02-12T03:59:11.667 に答える
0

これはどう :

    ArrayList<Stack<Integer>> arrays=new ArrayList<Stack<Integer>>();
    arrays.add(stack1);
    arrays.add(stack2);
    arrays.add(stack3);
    arrays.add(stack4);

//Put some code here to  Determine the stack size, if all are unequal in size   
    int size=stack1.size(); 


    for(int i=0;i<size;i++){
        String value="";
        String temp="";

//4 = スタック数が 4 のみになることがわかっている場合

        for(int j=0;j<4;j++){ 

            //Handle here Empty Stack Exception and print blank
            value="|"+(String)(arrays.get(j)).pop().toString()+"|"+" ";
            temp=temp+value;


        }

        System.out.println(temp);



    }
于 2013-02-12T04:37:33.823 に答える