Java 如何在不获取绑定异常的数组ouf的情况下提供多个数组输入
`我已经在一个数组中给出了6个值,但我希望它是动态的,这样我就不会对我给出的那么多输入得到一个数组越界异常。例如,我希望“打印”在同一行中,而不是在换行符中 控制台输入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
```
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