如何在 Java 的控制台中从用户那里获得简单的键盘输入(整数)?我使用这些java.io.*
东西完成了这个,但它说它已被弃用。
我现在应该怎么做?
您可以使用Scanner类
先导入:
import java.util.Scanner;
然后你像这样使用。
Scanner keyboard = new Scanner(System.in);
System.out.println("enter an integer");
int myint = keyboard.nextInt();
旁注:如果您nextInt()
与nextLine()
您一起使用可能会遇到一些麻烦,因为nextInt()
没有读取输入的最后一个换行符,因此nextLine()
不会以所需的行为执行。在上一个问题Skipping nextLine using nextInt中阅读有关如何解决它的更多信息。
您可以像这样使用 Scanner 类:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner scan= new Scanner(System.in);
//For string
String text= scan.nextLine();
System.out.println(text);
//for int
int num= scan.nextInt();
System.out.println(num);
}
}
如果您想验证用户输入,也可以使用BufferedReader来实现,如下所示:
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Areas {
public static void main(String args[]){
float PI = 3.1416f;
int r=0;
String rad; //We're going to read all user's text into a String and we try to convert it later
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Here you declare your BufferedReader object and instance it.
System.out.println("Radius?");
try{
rad = br.readLine(); //We read from user's input
r = Integer.parseInt(rad); //We validate if "rad" is an integer (if so we skip catch call and continue on the next line, otherwise, we go to it (catch call))
System.out.println("Circle area is: " + PI*r*r + " Perimeter: " +PI*2*r); //If all was right, we print this
}
catch(Exception e){
System.out.println("Write an integer number"); //This is what user will see if he/she write other thing that is not an integer
Areas a = new Areas(); //We call this class again, so user can try it again
//You can also print exception in case you want to see it as follows:
// e.printStackTrace();
}
}
}
因为 Scanner 类不允许你这样做,或者不是那么容易......
并验证您使用“try-catch”调用。
从键盘读取(标准输入)您可以使用Scanner是java.util
包中的一个类。
Scanner
包用于获取原始类型的输入,例如int, double
etc. 和strings
. 这是在 Java 程序中读取输入的最简单方法,尽管效率不高。
object
ofScanner
类,我们通常传递预定义的对象System.in
,它代表标准输入流(键盘)。例如,此代码允许用户从 System.in 中读取一个数字:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
类中的一些公共方法Scanner
。
hasNext()
如果此扫描器在其输入中有另一个标记,则返回 true。nextInt()
将输入的下一个标记扫描为 int。nextFloat()
将输入的下一个标记扫描为浮点数。nextLine()
将此扫描器前进到当前行并返回被跳过的输入。nextDouble()
将输入的下一个标记扫描为双精度。close()
关闭此扫描仪。例子:-
import java.util.Scanner; //importing class
class ScannerTest {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in); // Scanner object
System.out.println("Enter your rollno");
int rollno = sc.nextInt();
System.out.println("Enter your name");
String name = sc.next();
System.out.println("Enter your fee");
double fee = sc.nextDouble();
System.out.println("Rollno:" + rollno + " name:" + name + " fee:" + fee);
sc.close(); // closing object
}
}
您可以使用 Scanner 获取下一行并对输入的行执行任何您需要执行的操作。您还可以使用 JOptionPane 弹出一个对话框询问输入。
扫描仪示例:
Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);
JOptionPane 示例:
String input = JOptionPane.showInputDialog(null,
"Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);
您将需要这些导入:
import java.util.Scanner;
import javax.swing.JOptionPane;
以上的一个完整的Java类
import java.util.Scanner;
import javax.swing.JOptionPane;
public class GetInputs{
public static void main(String args[]){
//Scanner example
Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);
//JOptionPane example
String input = JOptionPane.showInputDialog(null,
"Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);
}
}
进口:import java.util.Scanner;
定义你的变量:String name; int age;
定义您的扫描仪:Scanner scan = new Scanner(System.in);
如果你想输入:
name = scan.nextLine();
age = scan.nextInt();
如果不再需要,请关闭扫描仪:scan.close();
如果你有 Java 6(你应该有,顺便说一句)或更高版本,那么只需执行以下操作:
Console console = System.console();
String str = console.readLine("Please enter the xxxx : ");
请记住:
import java.io.Console;
而已!
import java.util.Scanner; //import the framework
Scanner input = new Scanner(System.in); //opens a scanner, keyboard
System.out.print("Enter a number: "); //prompt the user
int myInt = input.nextInt(); //store the input from the user
如果您有任何问题,请告诉我。相当不言自明。我评论了代码,以便您阅读。:)
添加行:
import java.util.Scanner;
然后创建一个Scanner
类对象:
Scanner s = new Scanner(System.in);
现在您可以随时拨打电话:
int a = Integer.parseInt(s.nextLine());
这将从您的键盘存储integer
值。
在 java 中,我们可以通过 6 种方式读取输入值:
- 扫描器类:存在于 java.util.* 中;包,它有很多方法,根据您的输入类型,您可以使用这些方法。一个。nextInt() b. nextLong() C. nextFloat() d. nextDouble() e. 下一个() f。下一条线();ETC...
import java.util.Scanner;
public class MyClass {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a :");
int a = sc.nextInt();
System.out.println("Enter b :");
int b = sc.nextInt();
int c = a + b;
System.out.println("Result: "+c);
}
}
- BufferedReader 类:存在于 java.io.* 中;package & 它有很多方法,从键盘读取值使用“readLine()”:这个方法一次读取一行。
import java.io.BufferedReader;
import java.io.*;
public class MyClass {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new BufferedReader(new InputStreamReader(System.in)));
System.out.println("Enter a :");
int a = Integer.parseInt(br.readLine());
System.out.println("Enter b :");
int b = Integer.parseInt(br.readLine());
int c = a + b;
System.out.println("Result: "+c);
}
}