java第三次作业 io流

实现输入任意多的数,最后相加得和。

下附两种方法。

一种是老师上午上机课讲过的方法,直接运用循环中每个输入流中的数相加,附代码如下:

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        int nextValue, sum = 0;
        Scanner kbInput = new Scanner(System.in);
        kbInput.useDelimiter("\\s");
        try {
            while (kbInput.hasNextInt()) {
                nextValue = kbInput.nextInt();
                sum += nextValue;
            }
     kbInput.close(); }
catch (Exception e) { e.printStackTrace(); } System.out.println(sum); } }

 

 

其中主要应用了 Boolean hasNextInt()来判断输入流下一个是否为整型和 Scanner useDelimiter(String pattern)将扫描器的分隔模式设置为从指定 String 构造的模式。
第二种方法是我在上礼拜三上完课后首先想到的方法,附代码如下:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class ScannerTest2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int sum = 0;
        ArrayList<Integer> num = new ArrayList<>();
        Scanner input = new Scanner(System.in);
        input.useDelimiter("\\s");
        // ArrayList 接收数字
        for (int i = 0; input.hasNextInt(); i++) {
            num.add(input.nextInt());
        }
        // 迭代器
        Iterator<Integer> it = num.iterator();
        while (it.hasNext()) {
            sum += it.next();
        }
        System.out.println(sum);
    }

}

 

 

我的想法是:

要输入任意多个数,我会用ArrayList去接收它们,所以用了for循环。同时也查了API用Boolean hasNextInt()判断输入流中的下一个字符,然后最后利用迭代器让ArrayList中的数据相加,实现该功能。

结果如下:

以上为我的第三次作业。

 

 

 

期末设计:(还在商讨中……),待续……

posted @ 2016-03-28 19:26  Lcumin  阅读(361)  评论(0编辑  收藏  举报