在不知道n值的情况下从用户获取n个值的输入

时间:2015-05-29 06:44:33

标签: java arrays input

  

我想从用户读取n个值,但我不知道n的值。

     

在第一种情况下说{4,3,5,6,11,22}       在第二种情况下{11,22,77,43,2,1,2111,322}   假设我想从用户读取10个整数值(第二次5 int   价值)(取决于每个案例)。

     

第二件事是我想将这些值存储在数组中。

我真的很困惑。 任何帮助???

我尝试了以下代码 -

int a[50],i=-1;//how to dynamically assign memory to an array
Scanner s=new Scanner(System.in);
do{
   a[++i]=s.nextInt();
}while(!hasNextLine());

3 个答案:

答案 0 :(得分:2)

根据我的理解使用它。

public static void main(String[] args){
        int a[] = null;
        int i = 1;
        Scanner s=new Scanner(System.in);
        while (s.hasNextLine()){
            int temp[] = null;
            if(a!=null){
                 temp = a;
            }
            a = new int[i];
            a[i-1]=s.nextInt();         
            if(temp!= null){
                for(int j=0;j<temp.length;j++){
                a[j]=temp[j];   
                }

            }
            i++;
        }

    }

答案 1 :(得分:-1)

试试这个:

import java.io.*;

public class Hey

{
    public static void main(String ar[])throws IOException
    {
       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       String input = "";//get the input
       while((input = br.readLine()) != null)
            {
                String []numbers = input.split(",");
                System.out.println(numbers.length);
            }
    }
}

Look at this

答案 2 :(得分:-2)

用户如何表明输入已完成?输入的格式如何? 我想:

  • 用户为每行输入一个整数或用空格分隔的整数列表。
  • 用户输入一个空行或与Intege tor不同的内容表明它已完成。

您需要一个ArrayList,因为在开始要求之前您不知道输入的数量。 ArrayList是dinamic,因此您可以在不声明其大小的情况下向其中添加内容。

Scanner s = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
while(s.hasNextInt()){

    list.add(s.nextInt());

}