【发布时间】:2015-09-18 04:30:42
【问题描述】:
如果已经问过这个问题,请原谅我,但我正在尝试填充用户定义大小的数组,但我想确保任何额外的输入都被转储或触发错误以重新提示输入。我的任务要求数组的所有输入都在一行上完成,用空格分隔各个值。该程序运行良好,并且看到我们仍然处于课程的开头,我认为我们不应该知道如何过滤单行上的输入数量,但这仍然让我感到困扰。
我已经搜索了一段时间来寻找解决方案,但我找到的所有东西都不是我想要的。我认为做一段时间(scannerVariable != "\n") 会起作用,但是一旦我想了更多,我意识到这对我的问题没有任何帮助,因为每个数组只遇到一次换行符,而不管输入的数量。有问题的sn-p如下:
public static double[] getOperand(String prompt, int size)
{
System.out.print(prompt);
double array[];
array = new double[size];
for(int count = 0; count < size; count++)
{
array[count] = input.nextDouble();
}
return array;
}
我所需要的只是某种验证输入数量或转储/忽略额外输入的方法,以便缓冲区中没有垃圾可以跳过随后的输入。我能想到的唯一方法是计算空格数并将其与数组-1的大小进行比较。不过,我认为这不可靠,而且我不确定如何为计数提取空白字符,除非我将所有输入都放入一个字符串并解析它。如果需要,我可以发布更多代码或提供更多详细信息。一如既往,感谢您的帮助!
【问题讨论】:
-
我并不完全清楚您要做什么,但我会告诉您,您应该在
try-catch块内执行input.nextDouble()以防用户输入例如文本而不是数字。
标签: java validation input