4

我想知道使用其他类(例如BufferedReader等)而不是使用 Scanner 类从用户那里获取输入的其他方法。那么,有没有其他方法可以从用户那里获取输入?如果是这样,它比Scanner上课更有效率吗?

4

6 回答 6

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);
   }
于 2013-04-20T15:59:35.417 回答
4

您可以通过以下步骤简单地做到这一点:

  1. 使用BufferedReaderClass 并用 Class 包装它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();
    }
    
于 2013-04-20T16:26:41.993 回答
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可以将你的输入分成几行,而不用标记它。

于 2013-04-20T15:59:40.200 回答
2

用这个:

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

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

使用 aBufferedReader比使用 a 更有效Scanner

于 2013-04-20T15:59:11.640 回答
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]);
于 2014-08-15T15:19:21.803 回答
-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。如果用户愿意,他可以有任何数字或字符串。

于 2015-04-28T17:00:42.723 回答