获取键盘输入

时间:2013-07-09 00:41:01

标签: java input console keyboard

如何在Java控制台中从用户那里获得简单的键盘输入(整数)?我使用java.io.*内容完成了这项工作,但它表示已弃用。

我现在应该怎么做?

10 个答案:

答案 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)

您可以使用Scanner类

键盘标准输入)进行阅读您可以使用扫描程序java.util包中的课程。

Scanner包用于获取原始类型的输入,如int, double等和strings。这是在Java程序中读取输入的最简单方法,但效率不高。

  1. 要创建object Scanner类,我们通常会通过。{ 预定义对象System.in,表示标准输入 流(键盘)。
  2. 例如,此代码允许用户从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种方式读取输入值:

  1. 扫描仪类
  2. BufferedReader
  3. 控制台类
  4. 命令行
  5. AWT,字符串,GUI
  6. 系统属性
  1. 扫描仪类:存在于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);
    }
}
  1. 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);
    }
}