从Windows命令行打印只读取第二个字母 - Java的用户输入

时间:2014-03-12 07:57:40

标签: java string java.util.scanner user-input system.in

当我在Windows命令行中运行以下行时,它不会占用第一个字母。如果我输入22,则仅打印'2'

private static String  readInput() {
    try {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         input = br.readLine();
         System.out.println("input "+input);

   } catch (Exception ioe) {
      System.out.println("Error trying to read your input!");
      ioe.printStackTrace();
   }
}       

3 个答案:

答案 0 :(得分:0)

试试这个。

   while((input = br.readLine()) != null){
         System.out.println("input "+input);
    }

答案 1 :(得分:0)

试试这个!

private static String  readInput() {
try {
     DataInputStream in=new DataInputStream(System.in);
     input = in.readLine();
     System.out.println("input "+input);
     return input;
   } catch (Exception ioe) {
      System.out.println("Error trying to read your input!");
      ioe.printStackTrace();
   }
}     

答案 2 :(得分:0)

好的,我发现了问题。它与扫描仪或BufferedReader无关。一切正常。 我的另一个后端线程之一是阅读System.in.read();。这就是为什么我总是错过第一次输入。很抱歉让大家感到困惑。