日期:2014-05-20  浏览次数:20947 次

用Scanner输入的问题
用Scanner做输入的时候,如果不想输入的时候按回车结束那要怎么做?怎么我按回车了它还是回车?必须要我输入才行?

要你输入一个月份
月: 2
输出:2月
月: (问题就是在这,我用的是Scanner做输入。不输入的时候都不知道怎么让它停止。)
输出:3月(不输入的话默认是当前月)


------解决方案--------------------
设置指定字符串,当输入指定字符串时退出。
------解决方案--------------------
我当初就是在JAVA核心技术上遇到了这样子的程序,挺纳闷的,我那是就像这是怎么回事呢?难道核心技术上的程序逗哦有错?后来看看应该是他的代码的问题,无法停止输入。。。
------解决方案--------------------
public boolean hasNextInt()
如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 int 值,则返回 true。扫描器不执行任何输入。 

返回:
当且仅当此扫描器的下一个标记是有效的 int 值时才返回 true 
while(scanner.hasNextInt()){
int n=scanner.nextInt();
}
------解决方案--------------------
其他的方法暂时不会,只能给定一个退出的字符串。。。
Java code

import java.util.*;
public class TestScanner {
    public static void main(String[] args) {
        System.out.println("输入exit,程序将终止...");
        Scanner myScanner=new Scanner(System.in);
        while(true){
            if(myScanner.next().equals("exit")){
                System.out.println("程序终止!");
                System.exit(0);
            }
            else{
                System.out.println("你没有输入exit,程序继续等待你的输入...");
            }
        }
    }
}

------解决方案--------------------
inputStreamReader 可以实现这个。
------解决方案--------------------
Java code
        InputStreamReader isr=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(isr);
        String str=br.readLine();
        }

------解决方案--------------------
Scanner是一种阻塞式输入方式,只能等待输入才能继续执行