在不使用扫描仪的情况下从控制台获取用户输入

Gow*_*nan 4 java java.util.scanner

我想了解其他使用其他类的用户输入的方法BufferedReader,而不是使用Scanner类.那么,有没有其他方式来获取用户的输入?如果是这样,它比Scanner班级有效吗?

ajd*_*uke 5

如果您使用的是Java SE6或更高版本,则可以使用Consoleclas

   Console console = System.console();
   if (console==null){
      System.out.print("console not available ");
   }else {
      String line = console.readLine("Enter name :");
      System.out.print("your name :"+line);
   }
Run Code Online (Sandbox Code Playgroud)


Mav*_*ick 5

您只需按照以下步骤即可完成:

  1. 使用BufferedReader类并用类包装它InputStreamReader

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
    //string str = br.readLine(); //for string input
    int i = Integer.parseInt(br.readLine()); // for Integer Input
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在,由于该readLine方法抛出了一个异常,因此IOException您需要捕获它。整个代码如下所示:

    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
        //string str = br.readLine();     //for string input
        int i = Integer.parseInt(br.readLine()); // for Integer Input
    } catch(IOException ioe) {
        ioe.PrintStackTrace();
    }
    
    Run Code Online (Sandbox Code Playgroud)