0

我是一名初级 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()来实际读取输入。

我让我的程序开始工作。谢谢!

4

4 回答 4

2

您必须阅读输入:

if(cin.readLine().equals("jon")) {  // or "jon".equals(...) to handle null

(见BufferedReader.readLine()

您还必须IOException使用try-catch来处理潜力。

使用cin.equals("jon"),您正在测试BufferedReader对象cin本身是否等于字符串"jon"这显然是错误的。

于 2013-08-26T16:20:56.437 回答
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){

 }
于 2013-08-26T16:22:20.950 回答
0

你需要使用,cin.readLine()

甲骨文文档。

于 2013-08-26T16:21:13.537 回答
0
if(cin.readLine().equals("jon"))

此外,您需要处理 IOException

于 2013-08-26T16:21:34.583 回答