一个自写的JAVA小程序,高手进来看下

发布时间:2024-05-13 19:21 发布:上海旅游网

问题描述:

这个程序怎么我用了两种方法,怎么就只能输入一次呢?第二次不能输入了!为什么.好像System.in.read()老是只让程序停一次,帮我看下吧
程序结果是要让输入的一个数字让其每一位上的数字相加并输出

import java.util.*;

class PrintIterator //遍历集合中的元素求出和
{

public static void print(Collection c)
{
int sum=0;
Iterator<Integer> it =c.iterator() ;
while(it.hasNext())
{
sum +=it.next();
}

System.out.println(sum);
}
}

class PutNumber //输入数字,并加入到集合中
{
public static void putnumber(Collection c)
{
while(true)
{
int b=0;
try{b= System.in.read();}catch(Exception e){}
if(b =='\r'||b == '\n')
break;
else
{
int num = b-'0';
c.add(new Integer(num));
}
}
}
}

public class TestCollection
{
public static void main(String [] args){

System.out.println("输入一串数字:");

//用HashSet类来做:
HashSet<Integer> hs = new HashSet();
PutNumber.putnumber(hs);
PrintIterator.print(hs);

//用TreeSet类来做:
TreeSet<Integer> ts = new TreeSet();
PutNumber.putnumber(ts);
PrintIterator.print(ts);

}
}
我知道Scanner方法可以,我想知道为什么rean方法不能呀!

问题解答:

class PutNumber //输入数字,并加入到集合中
{
public static void putnumber(Collection c)
{
try{
while((int b=System.in.read())!=-1){
c.add(new Integer(b));
}
}
catch(IOException e){}
}
}

用scaner方法

“程序结果是要让输入的一个数字让其每一位上的数字相加并输出”

你写的这个程序输出来的结果和你说的不一样

热点新闻