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

时间:2013-04-20 15:53:15

标签: java java.util.scanner

我想知道使用其他类(如BufferedReader等)从用户那里获取输入的其他方法,而不是使用Scanner类。那么,有没有其他方式来获取用户的输入?如果是这样,它是否比Scanner类有效?

6 个答案:

答案 0 :(得分:5)

如果您使用的是Java SE 6或更高版本,则可以使用Console

   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);
   }

答案 1 :(得分:3)

您可以直接使用System.in,如下所示:

BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = r.readLine()) != null) {
    System.out.println(line);
}

虽然这可能比使用Scanner稍微快一点,但这并不是一个与众不同的比较:Scanner提供了更多用于标记输入的方法,而BufferedReader可以分割你输入的行,而不是标记它。

答案 2 :(得分:3)

您可以通过以下步骤完成此操作:

  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
    
  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();
    }
    

答案 3 :(得分:2)

使用此:

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

System.in创建一个阅读器,您可以使用stdin.readLine()或其他东西来获得您想要的内容。

使用BufferedReader比使用Scanner更有效率。

答案 4 :(得分:0)

这里举例......

InputStreamReader inStream = new InputStreamReader(System.in);
BufferedReader stdin = new BufferedReader(inStream);

int num , num2;
String str[]=new String[2];

System.out.print("Please Enter Your First Number:");
str[0] = stdin.readLine();
System.out.print("Please Enter Your Second Number:");
str[1] = stdin.readLine();

num = Integer.parseInt(str[0]);
num2 = Integer.parseInt(str[1]);

答案 5 :(得分:-2)

  

用户可以在不使用扫描仪类的情况下在执行程序时输入数据,这可以通过使用以下程序来完成。

 class Demo
  { 
   public static void main(String ar[])
    {
     int ab = Integer.parseInt(ar[0]);
     int ba = Integer.parseInt(ar[1]);
     int res = ab+ba;
     System.out.print(res);
    }
  }
  

这是一个基本程序,用户可以在执行时输入数据并获得所需的结果。您可以在CMD中添加,减去,乘法,除法和连接字符串,用户可以在编译java程序后输入数据,即在调用类文件时。您只需要调用类文件,然后在空格后输入数据。

C:\Users\Lenovo\Desktop>java Demo 5 2

  

这里ab = 5且ba = 2.如果用户可以拥有任何数字或字符串。