15

配列の結果が 1 行に収まらない理由を誰かが理解できるかどうか知りたいです。以下のコードの結果は次のように出力されます。

[
1
2
3
4
5
6
7
8
9
10
]

の代わりに[1 2 3 4 5 6 7 8 9 10]

結果に対して私が間違っていることについて何か考えはありませんか?

class RangeClass {

    int[] makeRange(int lower, int upper) {
      int arr[] = new int[ (upper - lower) + 1 ];

      for(int i = 0; i < arr.length; i++) {
        arr[i] = lower++;
      }
      return arr;
    }

    public static void main(String arguments[]) {
    int theArray[];
    RangeClass theRange = new RangeClass();

    theArray = theRange.makeRange(1, 10);
    System.out.println("The array: [ ");
    for(int i = 0; i< theArray.length; i++) {
      System.out.println(" " + theArray[i] + " ");
    }
    System.out.println("]");
    }
}   
4

9 に答える 9

49

短いバージョンを使用できます:

int theArray[] = {1, 2, 3};
System.out.println(java.util.Arrays.toString(theArray));
于 2013-05-15T12:05:00.767 に答える
1
for(int i = 0 ; i < theArray.length;i++){
 if(i==0)
   System.out.print("["+theArray[i]);
 else if(i==theArray.length-1)
   System.out.print(","+theArray[i]+"]");
 else
   System.out.print(","+theArray[i]);
}

出力:(例)

[1,2,5,3,7]

于 2013-05-15T12:08:44.943 に答える
0

すべてのコードで System.out.println() の代わりに System.out.print() を使用します。これは、System.out.println() を使用すると、毎回コンソールに出力された後に改行文字が出力されるためです。呼び出されますが、 System.out.print() を使用すると、パラメーターとして渡したものが出力されます。コードを次のように変更します

class RangeClass {
    int[] makeRange(int lower, int upper) {
        int arr[] = new int[ (upper - lower) + 1 ];
        for(int i = 0; i < arr.length; i++) {
            arr[i] = lower++;
        }
        return arr;
    }

    public static void main(String arguments[]) {
        int theArray[];
        RangeClass theRange = new RangeClass();

        theArray = theRange.makeRange(1, 10);
        System.out.print("The array: [ ");
        for(int i = 0; i< theArray.length; i++) {
            System.out.print(" " + theArray[i] + " ");
        }
        System.out.print("]");
    }
}
于 2013-05-15T12:39:33.483 に答える
0

System.out.printlnは、ステートメントを出力した後に行を変更します。そのため、配列要素が 1 行に収まりません。代わりに使用してみてくださいSystem.out.print。それでうまくいきます。

于 2013-05-15T12:07:42.063 に答える