我是初学Java程序员,我使用这个Java Tutorial。
在I/O from the Command Line页面中,它使用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()
来实际读取输入。
我的程序正常运行。谢谢!
答案 0 :(得分:2)
你必须阅读输入:
if(cin.readLine().equals("jon")) { // or "jon".equals(...) to handle null
您还必须使用try
-catch
来处理潜在的IOException
。
使用cin.equals("jon")
,您正在测试BufferedReader
对象cin
本身是否等于字符串"jon"
,这显然是错误的。
答案 1 :(得分:2)
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){
}
答案 2 :(得分:0)
您需要使用cin.readLine()
答案 3 :(得分:0)
if(cin.readLine().equals("jon"))
此外,您需要处理IOException