Java 在控制台中获取用户输入而不使用扫描仪
我想知道使用其他类(如Java 在控制台中获取用户输入而不使用扫描仪,java,java.util.scanner,Java,Java.util.scanner,我想知道使用其他类(如BufferedReader等)而不是使用Scanner类从用户那里获取输入的其他方法。那么,有没有其他方法可以从用户那里获得输入?如果是这样,它是否比扫描仪类有效?使用以下方法: BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); 要在中为系统创建读卡器,您可以使用stdin.readLine() 使用BufferedReader比使用扫描仪更有效如果您使用的是Java
BufferedReader
等)而不是使用Scanner类从用户那里获取输入的其他方法。那么,有没有其他方法可以从用户那里获得输入?如果是这样,它是否比扫描仪
类有效?使用以下方法:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
要在中为系统创建读卡器,您可以使用stdin.readLine()
使用BufferedReader
比使用扫描仪更有效如果您使用的是Java SE6或更高版本,则可以使用控制台
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);
}
您可以直接在
中使用系统,如下所示:
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = r.readLine()) != null) {
System.out.println(line);
}
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();
}
虽然这可能比使用扫描器快一点,但它不是一个苹果对苹果的比较:扫描器提供了更多的输入标记化方法,而缓冲阅读器可以将输入拆分为行,而不必标记化它。您只需通过以下步骤即可完成:
使用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
,您需要捕获它。整个代码如下所示:
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = r.readLine()) != null) {
System.out.println(line);
}
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]);
用户可以在执行程序时输入数据,而无需使用scanner类,这可以通过使用以下程序完成
这是一个基本程序,用户可以在执行时输入数据并获得所需的结果。您可以在CMD中添加、减去、乘、除和连接字符串,用户可以在编译java程序后,即调用类文件时输入数据。您只需要调用类文件,然后在空格后输入数据
C:\Users\Lenovo\Desktop>javademo52
这里ab=5,ba=2。用户可以有任何数字或字符串,如果他愿意的话
System.in是一个输入流。你可以直接阅读,也可以直接或间接使用任何包装它的类。它比Scanner类有效吗?@Gowtham更新了答案。但是如果您在eclipse中运行这个,那么它可能不会提供系统控制台。虽然有解决方法,但如果可能的话,请将eclipse的解决方法以及在命令行中运行该方法添加到您的答案中。