请老大指教,关于scanner控制台输入输出问题
import java.util.*;
public class setTest
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
Set<String> words=new HashSet<String>();
//long totalTime=0;
Scanner in=new Scanner(System.in);
while(in.hasNext())
{
String word=in.next();
//long callTime=System.currentTimeMillis();
words.add(word);
//callTime=System.currentTimeMillis()-callTime;
//totalTime+=callTime;
}
in.close();
Iterator<String> iter=words.iterator();
for(int i=1;i<-20;i++)
{
System.out.println(iter.next());
}
System.out.println(words.size());
}
}当输入一字符串后(空格隔开),问什么遍历没有显示???
import java.util.*;
public class setTest
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
Set<String> words=new HashSet<String>();
//long totalTime=0;
Scanner in=new Scanner(System.in);
while(in.hasNext())
{
String word=in.next();
//long callTime=System.currentTimeMillis();
words.add(word);
//callTime=System.currentTimeMillis()-callTime;
//totalTime+=callTime;
}
in.close();
Iterator<String> iter=words.iterator();
for(int i=1;i<-20;i++)
{
System.out.println(iter.next());
}
System.out.println(words.size());
}
}当输入一字符串后(空格隔开),问什么遍历没有显示???
while()是个死循环,要么去掉循环,当做一个字符串读取,要么使用正则表达式试一试,
ctrl+c一下
in.hasNext()就返回false了
就可以跳出看到结果了吧
Set words = new HashSet();
//long totalTime=0;
Scanner in = new Scanner(System.in);
int j = 1;
while(in.hasNext())
{
String word=in.next();
//long callTime=System.currentTimeMillis();
words.add(word);
//callTime=System.currentTimeMillis()-callTime;
//totalTime+=callTime;
j++;
if (j > 5){
break;
}
}
in.close();
Iterator iter = words.iterator();
for(int i=1;i < j;i++)
{
System.out.println(iter.next());
}
System.out.println(words.size());
试试看
对你应该有帮助吧
^_*