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

【java基础】怎样结束控制台输入

2017-10-09 22:15 447 查看
当使用Scanner(System.in)获取控制台输入时,一般都是以这样的方式,举一个例子,如

当控制台输入不是"-"时,就将其压入栈中,当输入为"-",栈不为空则弹出。

其中的while(in.hasNext())永远为真,最后的语句永远无法执行。

import java.util.Scanner;
import java.util.Stack;

public class InTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Stack<String> s = new Stack<String>();
while(in.hasNext()){// in.hasNext()永远为真
String str = in.nextLine();
if(!str.equals("-"))
s.push(str);
else if(!s.isEmpty())
System.out.println(s.pop() + " ");
}
// 这个语句永远无法执行
System.out.println("(" + s.size() + "left on stack)");
}
}

怎样结束控制台的输入呢?可以通过判断in.hasNext()是否为真,使用hasNext()方法的带参数的重载方法。
import java.util.Scanner;
import java.util.Stack;

public class InTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Stack<String> s = new Stack<String>();
while(!in.hasNext("eof")){// 通过判断in.hasNext()的参数
String str = in.nextLine();
if(!str.equals("-"))
s.push(str);
else if(!s.isEmpty())
System.out.println(s.pop() + " ");
}
System.out.println("(" + s.size() + "left on stack)");
}
}当输入为字符串eof时,则停止控制台的输入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: