如何在Java控制台中从用户那里获得简单的键盘输入(整数)?我使用java.io.*
内容完成了这项工作,但它表示已弃用。
我现在应该怎么做?
答案 0 :(得分:61)
您可以使用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中了解如何解决它的更多信息。
答案 1 :(得分:18)
您可以像这样使用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);
}
}
答案 2 :(得分:13)
如果要验证用户输入,也可以使用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”调用。
答案 3 :(得分:3)
您可以使用扫描仪获取下一行,并对输入的行执行任何操作。您还可以使用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);
}
}
答案 4 :(得分:3)
从键盘(标准输入)进行阅读您可以使用扫描程序是java.util
包中的课程。
Scanner
包用于获取原始类型的输入,如int, double
等和strings
。这是在Java程序中读取输入的最简单方法,但效率不高。
object
Scanner
类,我们通常会通过。{
预定义对象System.in
,表示标准输入
流(键盘)。例如,此代码允许用户从System.in中读取数字:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
Scanner
类中的一些公共方法。
hasNext()
如果此扫描器中有另一个令牌,则返回true
输入nextInt()
将输入的下一个标记扫描为int。nextFloat()
将输入的下一个标记扫描为浮动。nextLine()
使此扫描程序超过当前行并返回跳过的输入。 nextDouble()
将输入的下一个标记扫描为double。close()
关闭此扫描仪。有关Public methods in Scanner class.
的更多详情实施例: -
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
}
}
答案 5 :(得分:2)
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
如果您有任何疑问,请与我们联系。相当不言自明。我对代码进行了评论,以便您可以阅读它。 :)
答案 6 :(得分:2)
如果你有Java 6(你应该有,顺便说一句)或更高,那么只需这样做:
Console console = System.console();
String str = console.readLine("Please enter the xxxx : ");
请记住:
import java.io.Console;
多数民众赞成!
答案 7 :(得分:2)
导入:import java.util.Scanner;
定义变量:String name; int age;
定义您的扫描仪:Scanner scan = new Scanner(System.in);
如果您想输入:
name = scan.nextLine();
age = scan.nextInt();
如果不再需要,请关闭扫描仪:scan.close();
答案 8 :(得分:1)
添加行:
import java.util.Scanner;
然后创建Scanner
class:
Scanner s = new Scanner(System.in);
现在你可以随时打电话了:
int a = Integer.parseInt(s.nextLine());
这将存储键盘上的integer
值。
答案 9 :(得分:0)
在Java中,我们可以通过6种方式读取输入值:
- 扫描仪类:存在于java.util。*中;包,它有很多方法,根据您的输入类型,您可以利用这些方法。一种。 nextInt()b。 nextLong()c。 nextFloat()d。 nextDouble()e。 next()f。 nextLine();等等...
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);
}
}