在java中输入动态数组

时间:2017-07-29 20:03:42

标签: java arrays arraylist java.util.scanner

我正在尝试输入一个动态数组,大小在任何一点都是未知的,输入就像这样(例子)

1 5 1 4 3 2

但无法弄清楚如何。我有一个部分工作但仍需要完美解决方案的代码。

我的代码:

Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
for(int i=0; i<T;i++){
List<Integer> a = new ArrayList<Integer>();;
int n=0;
String temp;
do{
     temp = sc.next();
     a.add(Integer.parseInt(temp));
     n++;
}while(sc.hasNextInt());
myfxn(a);
}

此代码等待,直到输入一个非数字值然后它继续,我认为这将采取Enter,但它没有。所以我需要以一种他们占据整个数组的方式执行我的代码,直到触发Enter或行结束。

3 个答案:

答案 0 :(得分:0)

如果您希望用户输入由空格分隔的值并以新行结束....请尝试此

public static void main(String[] args){
     int i = 0;
   List<Integer> values = new ArrayList<>();
    while(i<args.length){
         try{
              int temp = Integer.parseInt(args[i]);
           values.add(temp);
          }catch(){}

         i++;

}
}

答案 1 :(得分:0)

我在一些帮助下找到答案,这是代码

    Scanner sc = new Scanner(System.in);
    int T;
    T = sc.nextInt();
    sc.nextLine();
    for(int i=0; i<T;i++){
        List<Integer> a = new ArrayList<Integer>();;
        int n=0;
        String data = sc.nextLine();
        Scanner scanner = new Scanner(data);
        while(scanner.hasNextInt()){
            a.add(scanner.nextInt());
            n++;
        }
        myfxn(a);
    }

答案 2 :(得分:0)

获取输入以及空格作为字符串。

String input= scanner.nextLine();

现在用空格分割该字符串。

String [] array= input.split(" ");

现在输入的值将作为数组提供,如果需要整数,则将其解析。