从大阵列到两个小阵列

时间:2014-02-08 11:11:37

标签: java arrays int

因此,我试图从一个数字为20的大数组和10个中的两个小数组进行制作,第二个数组必须打印出来。

public class Solution
{
    public static void main(String[] args) throws Exception
    {
       int[] bMas = new int[20];

        int[] lMas = new int[10];
        int[] lMas2 = new int[10];

        Scanner in = new Scanner(System.in);

        for(int i = 0; i < bMas.length; i++)
        {
            bMas[i] =  in.nextInt();
        }
         // 0 10
        for(int i = 0; i < 10; i++)
        {
            lMas[10 - i] = bMas[10];
        }
        //10 20
        for(int i = 10; i < bMas.length; i++)
        {
            lMas2[10 - i] = bMas[20];
            //Here he must outprint hes vallue
           System.out.println(lMas2[i]);
        }


    }


}

2 个答案:

答案 0 :(得分:1)

我不知道你的问题是什么(主要是因为你没有问过)但我可以告诉你,你得到的是一个ArrayIndexOutOfBoundsException。

for(int i = 0; i < 10; i++)
    {
        lMas[10 - i] = bMas[10];
    }

这个循环将第一次给你一个索引越界错误。数组lMas是10个单位大(索引0-9)所以当i = 0时,这将引用索引10,而不是存在。

即使写得正确,你也要将完全相同的bMas [10]值存储到lMas数组的每个插槽中。

你对lMas2数组执行完全相同的操作。

答案 1 :(得分:0)

您可以使用Arrays.copyOfRange

lMas[] = Arrays.copyOfRange(bMas, 0, 10);
lMas2[] = Arrays.copyOfRange(bMas, 10, 20);