按int数组给出的顺序打印String数组

时间:2013-01-28 15:15:08

标签: java arrays indexoutofboundsexception

我有一个随机数的int数组。我已经填充了一个字符串数组。 我正在尝试按照与System.out.print数组中的顺序对应的顺序显示String int数组。

喜欢,如果int array[]={3,1,2},如果是初始String array[]={"a","b","c"},那么我想将字符串数组打印为

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

在此示例中,索引0处的"a"将对应于数字1等

我想知道我是否可以做类似的事情(我试过,但我得到了一个“出界”异常,所以我猜它仍然可能):

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

我还尝试将循环的长度设置为length-1,但没有成功。

请注意,我正在尝试以基本方式使其工作,没有对象或方法。我读过有关TreeMap的内容,但这已经过于先进了。

2 个答案:

答案 0 :(得分:5)

请注意,数组索引以开头,尝试减少从int数组中检索的值。

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

答案 1 :(得分:2)

你的循环很好,但你必须确保int数组在[0..stringArray]范围内有int值。也就是说,如果stringArray的大小为5,则有效随机数位于闭区间[0,1,2,3,4]