您的位置:首页 > 编程语言 > Java开发

java第三次作业 io流

2016-03-28 19:26 656 查看
实现输入任意多的数,最后相加得和。

下附两种方法。

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

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中的数据相加,实现该功能。

结果如下:



以上为我的第三次作业。

期末设计:(还在商讨中……),待续……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: