【发布时间】:2013-04-13 21:18:33
【问题描述】:
我想知道使用其他类(如BufferedReader 等)而不是使用 Scanner 类从用户那里获取输入的其他方法。那么,有没有其他方法可以从用户那里获取输入?如果是这样,它比Scanner class 高效吗?
【问题讨论】:
-
System.in 是一个 InputStream。您可以直接读取它,也可以直接或间接使用任何包装它的类。
我想知道使用其他类(如BufferedReader 等)而不是使用 Scanner 类从用户那里获取输入的其他方法。那么,有没有其他方法可以从用户那里获取输入?如果是这样,它比Scanner class 高效吗?
【问题讨论】:
使用这个:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
为System.in创建一个阅读器,你可以使用stdin.readLine()或其他东西来获得你想要的东西。
使用BufferedReader 比使用Scanner 高效得多。
【讨论】:
如果您使用的是 Java SE6 或更高版本,则可以使用Console clas
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);
}
【讨论】:
你可以直接使用System.in,像这样:
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = r.readLine()) != null) {
System.out.println(line);
}
虽然这可能比使用 Scanner 快一点,但这不是一个苹果对苹果的比较:Scanner 提供了更多的方法来标记输入,而 BufferedReader 可以将您的输入拆分为行,而无需标记它。
【讨论】:
您可以通过以下步骤轻松完成:
使用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
现在由于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();
}
【讨论】:
这里例如...
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]);
【讨论】:
用户可以在程序执行时输入数据,而无需使用扫描程序类,这可以通过使用以下程序来完成。
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。用户可以根据需要使用任何数字或字符串。
【讨论】: