首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何简化大量的nextInt/nextDouble?

如何简化大量的nextInt/nextDouble?
EN

Stack Overflow用户
提问于 2015-10-17 23:51:32
回答 2查看 64关注 0票数 0

因此,我正在创建一个程序,将确定最后一个学期的班级成绩,给定的作业和测试成绩,以及他们在该年级中所占的百分比。一个学生的年级和百分比信息将在一条线上给出。所以,我只有一个问题:

代码语言:javascript
代码运行次数:0
运行
复制
        q1 = input.nextInt();
        q1p = input.nextDouble();
        q2 = input.nextInt();
        q2p = input.nextDouble();
        q3 = input.nextInt();
        q3p = input.nextDouble();

        l1 = input.nextInt();
        l1p = input.nextDouble();
        l2 = input.nextInt();
        l2p = input.nextDouble();
        l3 = input.nextInt();

有没有更好的方法来简化整双输入的混乱??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-18 00:02:30

从您的输入变量中可以看出,您正在使用Scanner,对吗?如果是这样的话,你可以用一个简单的外观来做一些很好的事情,接下来的条件是通过扫描仪来验证是否有要读取的输入。最后,为了检测输入是双输入还是整数,我们将做一个简单的检查,以确保!

代码语言:javascript
代码运行次数:0
运行
复制
Collection<Integer> integers= new ArrayList<>();
Collection<Double> doubles = new ArrayList<>();

while(input.hasNext())
{

 if (input.hasNextInt()) {
     integers.add(input.nextInt());
}else if(input.hasNextDouble()) {
     doubles.add(input.nextDouble());
}else
     input.next(); // will simply move to next value in the line
}

这样,您不仅不必每次检查nextInt或NextDouble之前的静态用户输入,您也不必担心。如果输入不是双或int,那么列表将保持为空!

更新

更改集合列表的使用,以便在运行时减少麻烦!这个解决方案目前对你来说应该是很好的解决方案。我还在if结构中添加了一个子句,以便在hasNext == false时完成循环。

票数 1
EN

Stack Overflow用户

发布于 2015-10-17 23:57:50

您可以使用两个数组并对它们进行循环:

代码语言:javascript
代码运行次数:0
运行
复制
int numberOfInputs = XXX;
int[] ints = new int[numberOfInputs];
double[] doubles = new double[numberOfInputs];

for (int i = 0; i < numberOfInputs; i++)
{
    ints[i] = input.nextInt();
    doubles[i] = input.nextDouble();
}

如果您需要它更灵活,并且在(Un)装箱方面没有问题,您可以使用Colletion

代码语言:javascript
代码运行次数:0
运行
复制
Collection<Integer> ints = new ArrayList<>();
Collection<Double> doubles = new ArrayList<>();

while (moreInput)
{
    ints.add(input.nextInt());
    doubles.add(input.nextDouble());
}

moreInput是一个任意的条件,您需要根据您的需要进行调整。

例如,如果有2个ints和1个double,则可以在循环中添加条件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33192827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档