我是一个初学者Java程序员,我使用这个Java教程。
在指挥线I/O页面中,它使用InputStreamReader cin = new InputStreamReader(System.in);从命令行获取用户输入。但当我尝试使用它时,什么都不会发生。我有一个非常简单的程序,它只是测试这是否有效,但它没有。
import java.io.*;
public class TestInput {
public static void main(String args[]) {
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
if(cin.equals("jon")) {
System.out.println("hello, jon.");
} else {
System.out.println("hello, guest.");
}
}
}它只是说,“你好,客人”和退出,没有让我输入任何东西。
我假设这应该与System.console类似,但是如果这不是它应该的样子,请告诉我。
我的密码怎么了?
谢谢你的回答。
编辑
从我所得到的编辑中,我想我必须使用cin.readline()来实际读取输入。
我的程序开始工作了。谢谢!
发布于 2013-08-26 16:22:20
try{
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
String name= cin.readLine();
if(name!=null && name.equals("jon")) {
System.out.println("hello, jon.");
} else {
System.out.println("hello, guest.");
}
}catch(IOException e){
}发布于 2013-08-26 16:20:56
您必须阅读输入:
if(cin.readLine().equals("jon")) { // or "jon".equals(...) to handle null(见BufferedReader.readLine())
您还必须使用一个IOException来处理潜在的catch。
使用cin.equals("jon"),您将测试BufferedReader对象cin本身是否等于字符串"jon",这显然是假的。
发布于 2013-08-26 16:21:13
你需要用,cin.readLine()
甲骨文医生。
https://stackoverflow.com/questions/18448521
复制相似问题