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,但没有成功。

请注意,我试图使其以基本方式工作,没有对象或方法。我读过一些关于 a 的东西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 数组在 [0..stringArray) 范围内具有 int 值。也就是说,如果您的 stringArray 大小为 5,则有效随机数在闭区间 [0,1,2,3,4]

于 2013-01-28T15:19:12.277 回答