Java 如何在不获取绑定异常的数组ouf的情况下提供多个数组输入

Java 如何在不获取绑定异常的数组ouf的情况下提供多个数组输入,java,arrays,core,Java,Arrays,Core,`我已经在一个数组中给出了6个值,但我希望它是动态的,这样我就不会对我给出的那么多输入得到一个数组越界异常。例如,我希望“打印”在同一行中,而不是在换行符中 控制台输入 ``` 4 3.176 2 0.5 0.5 4 4 2 4 1 1.5 4 4 PRINT 用于从控制台获取输入的主类 public static void main(String args[]) throws IOException { Scanner scanner = new Scanner(Sy

`我已经在一个数组中给出了6个值,但我希望它是动态的,这样我就不会对我给出的那么多输入得到一个数组越界异常。例如,我希望“打印”在同一行中,而不是在换行符中

控制台输入

```
4
3.176 2
0.5 0.5
4 4
2 4
1 1.5 4 4 PRINT
用于从控制台获取输入的主类

public static void main(String args[]) throws IOException
    {
        Scanner scanner = new Scanner(System.in);
        int numpoints = 6;

        BoundingBox b = new BoundingBox(numpoints);
        double x[] = new double[6];
        int counter = 0;
        while(scanner.hasNext()){
            String line = scanner.nextLine();
            if(line.equals("PRINT")){break;}
            //Inorder to use TEST WITH COUNT PLEASE UNCOMMENT IT .
            //if(line.equals("COUNT")){break;}
            String lineArr[]  = line.split(" ");
            Double xD = Double.valueOf(lineArr[0]);
            x[0] = (double)xD;

            if(counter == 0) {
                x[1] = 0.0;
                counter++;
            }else {
            Double yD = Double.valueOf(lineArr[1]);
            x[1] = (double)yD;
            }
            Double zD = 0.0;
            if(lineArr.length>=6){
            zD = Double.valueOf(lineArr[2]);
            x[2] = (double)zD;

            Double wD = 0.0;
            wD = Double.valueOf(lineArr[3]);
            x[3] = (double)wD;

            Double yD = 0.0;
            yD = Double.valueOf(lineArr[4]);
            x[4] = (double)yD;

            Double id=0.0;
            yD = Double.valueOf(lineArr[5]);
            x[5] = (double)id;






            }
            //System.out.println("xD, yD, zd,  wd)= "+xD+"+"+"+zD+"+" + wD+");
             b.build(x);

        }


        System.out.println("\n ");
        b.putNew();
   }

Java中的数组必须在运行时以固定大小初始化。一旦设置了其大小,就无法更改

如果要存储项目列表,可以使用
列表

List
是一个接口,因此不能调用
newlist(),而必须选择一个实现
ArrayList
是一个很好的全方位匹配,顾名思义,它由一个数组支持

例如:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
...
// continue indefinitely

System.out.println(list.get(0));  // prints the first thing in the list
List List=new ArrayList();
增加第(1)款;
增加(2);
...
//无限期地继续下去
System.out.println(list.get(0));//打印列表中的第一项
会很好的


请注意,您必须(技术上不是必需的,但实践非常好)指定
列表中元素的类型(即
列表
列表
)。

Java中的数组必须在运行时以固定大小初始化。一旦设置了其大小,就无法更改

如果要存储项目列表,可以使用
列表

List
是一个接口,因此不能调用
newlist(),而必须选择一个实现
ArrayList
是一个很好的全方位匹配,顾名思义,它由一个数组支持

例如:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
...
// continue indefinitely

System.out.println(list.get(0));  // prints the first thing in the list
List List=new ArrayList();
增加第(1)款;
增加(2);
...
//无限期地继续下去
System.out.println(list.get(0));//打印列表中的第一项
会很好的


请注意,您必须(技术上不需要,但非常好的做法)在
列表中指定元素的类型(即
列表
列表
).

实际上,我希望用户可以输入任意数量的输入,并以打印或计数结束,这样就可以得到结果。正如您所看到的,上面的代码中有NUMPOINT,但我希望以不同的方式定义,这样我就不会将超出范围的异常数组放入正则表达式中。这些参数可用于确定给定的输入字符串是否为数字。然后,如果你看到一个非数字,您可以单独处理它。实际上,我希望用户可以输入任意数量的输入,并以打印或计数结束,这样就可以得到结果。正如您可以看到我上面的代码中有NUMPOINT,但我希望以不同的方式定义,这样我就不会数组超出范围,除非查看正则表达式。这些参数可用于确定给定的输入字符串是否为数字。然后,如果您看到一个非数字,您可以单独处理它
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
...
// continue indefinitely

System.out.println(list.get(0));  // prints the first thing in the list