当前位置: 代码迷 >> J2SE >> 用Scanner输入的有关问题
  详细解决方案

用Scanner输入的有关问题

热度:31   发布时间:2016-04-24 00:48:24.0
用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是一种阻塞式输入方式,只能等待输入才能继续执行
  相关解决方案