1

乱数を含む int 配列があります。また、文字列配列も既に入力されています。配列内の順序に対応する順序で配列を表示 ( System.out.print)しようとしています。Stringint

の場合int array[]={3,1,2}、および inital の場合String array[]={"a","b","c"}、文字列配列を次のように出力したい

stringArray[intArray]={c, a, b}

この例では"a"、インデックス 0 は番号 1 に対応します。

次のようなことができるかどうか疑問に思いました(試してみましたが、「範囲外」の例外が発生したため、まだ可能だと思います):

for (int i=0; i<intArray.length; i++) {
    if(intArray[i] != 0) {
        System.out.println( stringArray[ intArray[i] ] );
    }
}

また、ループの長さを length-1 に設定しようとしましたが、成功しませんでした。

オブジェクトやメソッドを使用せずに、基本的な方法で機能させようとしていることに注意してください。について何か読んだことがありますTreeMapが、それはすでに高度すぎます。

4

2 に答える 2

5

配列インデックスはゼロから始まることに注意してください。int 配列から取得した値をデクリメントしてみてください。

for (int i=0; i<intArray.length; i++) {
        if(intArray[i] != 0) {
            System.out.println( stringArray[ intArray[i]-1 ] );
        }
}
于 2013-01-28T15:17:36.990 に答える
2

ループは問題ありませんが、int 配列の int 値が [0..stringArray) の範囲内にあることを確認する必要があります。つまり、stringArray のサイズが 5 の場合、有効な乱数は閉区間 [0,1,2,3,4] にあります。

于 2013-01-28T15:19:12.277 に答える