java怎么实现输入n个数字赋值到一个数组内?

如图,怎么实现arr内的元素由用户输入任意个数字,也就是数组的长度和数组内元素都不确定

数组的长度是固定的,这是肯定的,那就知道定义一个长度,不如是10,你循环输入,每次在循环里面检测长度是否已经超出最大长度,如果已经超出,那就new一个新的数组,长度再适当增加,变为两倍或者是增加10个,然后把旧的数组复制到新的数组里面去就可以了。

具体操作如下:

1、import java.util.Arrays;

import java.util.Scanner;

public class Test3 {

public static void main(String[] args) {

int[ ] arr = new int[5];

2、Scanner scan = new Scanner(System.in);

int temp = 0;

int index = 0;

System.out.println("请输入数字,按999结束输入:")

while (true) {

temp = scan.nextInt();

if (temp == 999)

break;

if (index >= arr.length)

arr = kuoRong(arr);

arr[index] = temp;

index++;}

System.out.println(Arrays.toString(arr));

scan.close();

}public static int[] kuoRong(int[] arrOld) {int[] arrNew = null;

arrNew = Arrays.copyOf(arrOld, arrOld.length + 5);

return arrNew;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-04

这个问题,不知道你学到集合了没有,如果学到了集合就可以用ArrayList,如果没有学到,那就只能变通了

数组的长度是固定的,这是肯定的,那就知道定义一个长度,不如是10,你循环输入,每次在循环里面检测长度是否已经超出最大长度,如果已经超出,那就new一个新的数组,长度再适当增加,变为两倍或者是增加10个,然后把旧的数组复制到新的数组里面去,其实这也是集合的思想

package 临时;

import java.util.Arrays;
import java.util.Scanner;

public class Test3 {

public static void main(String[] args) {
int[] arr = new int[5];
Scanner scan = new Scanner(System.in);
int temp = 0;
int index = 0;
System.out.println("请输入数字,按999结束输入:");
while (true) {
temp = scan.nextInt();
if (temp == 999)
break;
if (index >= arr.length)
arr = kuoRong(arr);
arr[index] = temp;
index++;
}
System.out.println(Arrays.toString(arr));
scan.close();
}

public static int[] kuoRong(int[] arrOld) {
int[] arrNew = null;
arrNew = Arrays.copyOf(arrOld, arrOld.length + 5);
return arrNew;
}

}

第2个回答  2016-10-04

package keshe4;


import java.util.Scanner;


public class PrintArray {


public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("请输入数组长度");

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

System.out.println("请分别输入每个数字");

int[] arr =  new int[num];

for(int i = 0; i < num; i++){

arr[i] = sc.nextInt();

}

for(int i = 0; i < arr.length; i++){

System.out.print(arr[i] + "\t");

}

}


}


本回答被提问者采纳
相似回答