首页 文章

如何在Java中获取用户输入?

提问于
浏览
260

我试图创建一个计算器,但我不能让它工作,因为我不知道如何获得用户输入 .

如何在Java中获取用户输入?

24 回答

  • 4

    您可以使用Scanner类或Console类

    Console console = System.console();
    String input = console.readLine("Enter input:");
    
  • 351

    您可以使用BufferedReader获取用户输入 .

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String accStr;  
    
    System.out.println("Enter your Account number: ");
    accStr = br.readLine();
    

    它将在 accStr 中存储 String 值,因此您必须使用Integer.parseInt将其解析为 int .

    int accInt = Integer.parseInt(accStr);
    
  • 16

    以下是如何获得键盘输入:

    Scanner scanner = new Scanner (System.in);
    System.out.print("Enter your name");  
    name = scanner.next(); // Get what the user types.
    
  • 43

    最简单的方法之一是使用 Scanner 对象,如下所示:

    import java.util.Scanner;
    
    Scanner reader = new Scanner(System.in);  // Reading from System.in
    System.out.println("Enter a number: ");
    int n = reader.nextInt(); // Scans the next token of the input as an int.
    //once finished
    reader.close();
    
  • 1

    您可以根据要求使用以下任何选项 .

    扫描仪类

    import java.util.Scanner; 
    Scanner scan = new Scanner(System.in);
    String s = scan.next();
    int i = scan.nextInt();
    

    BufferedReader和InputStreamReader类

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String s = br.readLine();
    int i = Integer.parseInt(br.readLine());
    

    DataInputStream类

    import java.io.DataInputStream;
    DataInputStream dis = new DataInputStream(System.in);
    int i = dis.readInt();
    

    DataInputStream 类中的 readLine 方法已被弃用 . 要获取String值,您应该使用以前的BufferedReader解决方案


    控制台类

    import java.io.Console;
    Console console = System.console();
    String s = console.readLine();
    int i = Integer.parseInt(console.readLine());
    

    显然,这种方法在某些IDE中不能很好地工作 .

  • 19

    您可以创建一个简单的程序来询问用户的姓名并打印回复使用输入的内容 .

    或者要求用户输入两个数字,您可以添加,乘法,减去或除以这些数字,并打印用户输入的答案,就像计算器的行为一样 .

    所以你需要Scanner类 . 您必须 import java.util.Scanner; 并在您需要使用的代码中

    Scanner input = new Scanner(System.in);
    

    输入是变量名称 .

    Scanner input = new Scanner(System.in);
    
    System.out.println("Please enter your name : ");
    s = input.next(); // getting a String value
    
    System.out.println("Please enter your age : ");
    i = input.nextInt(); // getting an integer
    
    System.out.println("Please enter your salary : ");
    d = input.nextDouble(); // getting a double
    

    看看它有何不同: input.next();i = input.nextInt();d = input.nextDouble();

    根据String,int和double对其余部分采用相同的方式 . 不要忘记代码顶部的import语句 .

    另请参阅博客文章"Scanner class and getting User Inputs" .

  • 15

    这里,程序要求用户输入一个数字 . 之后,程序打印数字的数字和数字的总和 .

    import java.util.Scanner;
    
    public class PrintNumber {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int num = 0;
            int sum = 0;
    
            System.out.println(
                "Please enter a number to show its digits");
            num = scan.nextInt();
    
            System.out.println(
                "Here are the digits and the sum of the digits");
            while (num > 0) {
                System.out.println("==>" + num % 10);
                sum += num % 10;
                num = num / 10;   
            }
            System.out.println("Sum is " + sum);            
        }
    }
    
  • 8

    要读取行或字符串,可以使用 BufferedReader 对象和 InputStreamReader 对象,如下所示:

    BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
    String inputLine = bufferReader.readLine();
    
  • 5

    使用 System 类来获取输入 .

    http://fresh2refresh.com/java-tutorial/java-input-output/

    如何从键盘接受数据?我们需要三个对象,System.in InputStreamReader BufferedReader InputStreamReader和BufferedReader是java.io包中的类 . System.in是一个InputStream对象,从键盘以字节的形式接收数据 . 然后InputStreamReader读取字节并将它们解码为字符 . 然后,最后BufferedReader对象从字符输入流中读取文本,缓冲字符,以便有效地读取字符,数组和行 .

    InputStreamReader inp = new InputStreamReader(system.in);
    BufferedReader br = new BufferedReader(inp);
    
  • 3

    以下是使用 java.util.Scanner 的问题的程序:

    import java.util.Scanner;
    
    public class Example {
        public static void main(String[] args) {
            int input = 0;
            System.out.println("The super insano calculator");
            System.out.println("enter the corrosponding number:");
            Scanner reader3 = new Scanner(System.in);
            System.out.println(
                "1. Add | 2. Subtract | 3. Divide | 4. Multiply");
    
            input = reader3.nextInt();
    
            int a = 0, b = 0;
    
            Scanner reader = new Scanner(System.in);
            System.out.println("Enter the first number");
            // get user input for a
            a = reader.nextInt();
    
            Scanner reader1 = new Scanner(System.in);
            System.out.println("Enter the scend number");
            // get user input for b
            b = reader1.nextInt();
    
            switch (input){
                case 1:  System.out.println(a + " + " + b + " = " + add(a, b));
                         break;
                case 2:  System.out.println(a + " - " + b + " = " + subtract(a, b));
                         break;
                case 3:  System.out.println(a + " / " + b + " = " + divide(a, b));
                         break;
                case 4:  System.out.println(a + " * " + b + " = " + multiply(a, b));
                         break;
                default: System.out.println("your input is invalid!");
                         break;
            }
        }
    
        static int      add(int lhs, int rhs) { return lhs + rhs; }
        static int subtract(int lhs, int rhs) { return lhs - rhs; }
        static int   divide(int lhs, int rhs) { return lhs / rhs; }
        static int multiply(int lhs, int rhs) { return lhs * rhs; }
    }
    
  • 1

    只是一个额外的细节 . 如果您不想冒内存/资源泄漏的风险,则应在完成后关闭扫描程序流:

    myScanner.close();
    

    请注意,java 1.7及更高版本将此作为编译警告(不要问我怎么知道:-)

  • -1
    import java.util.Scanner; 
    
    class Daytwo{
        public static void main(String[] args){
            System.out.println("HelloWorld");
    
            Scanner reader = new Scanner(System.in);
            System.out.println("Enter the number ");
    
            int n = reader.nextInt();
            System.out.println("You entered " + n);
    
        }
    }
    
  • 3
    Scanner input=new Scanner(System.in);
    int integer=input.nextInt();
    String string=input.next();
    long longInteger=input.nextLong();
    
  • 2
    Scanner input = new Scanner(System.in);
    String inputval = input.next();
    
  • 289

    main() 旁边添加 throws IOException ,然后

    DataInputStream input = new DataInputStream(System.in);
    System.out.print("Enter your name");
    String name = input.readLine();
    
  • 8

    在java中获取输入非常简单,您所要做的就是:

    import java.util.Scanner;
    
    class GetInputFromUser
    {
        public static void main(String args[])
        {
            int a;
            float b;
            String s;
    
            Scanner in = new Scanner(System.in);
    
            System.out.println("Enter a string");
            s = in.nextLine();
            System.out.println("You entered string " + s);
    
            System.out.println("Enter an integer");
            a = in.nextInt();
            System.out.println("You entered integer " + a);
    
            System.out.println("Enter a float");
            b = in.nextFloat();
            System.out.println("You entered float " + b);
        }
    }
    
  • 3
    import java.util.Scanner;
    
    public class Myapplication{
         public static void main(String[] args){
             Scanner in = new Scanner(System.in);
             int a;
             System.out.println("enter:");
             a = in.nextInt();
             System.out.println("Number is= " + a);
         }
    }
    
  • 2

    你可以使用BufferedReader获得这样的用户输入:

    InputStreamReader inp = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(inp);
        // you will need to import these things.
    

    这就是你应用它们的方式

    String name = br.readline();
    

    因此,当用户在控制台中输入他的名字时,“String name”将存储该信息 .

    如果它是您要存储的数字,代码将如下所示:

    int x = Integer.parseInt(br.readLine());
    

    跳这有帮助!

  • -1

    可以是这样的......

    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
    
        System.out.println("Enter a number: ");
        int i = reader.nextInt();
        for (int j = 0; j < i; j++)
            System.out.println("I love java");
    }
    
  • 4

    这是一个使用 System.in.read() 函数的简单代码 . 这段代码只写出输入的内容 . 如果您只想输入一次,则可以摆脱while循环,如果您愿意,可以将答案存储在字符数组中 .

    package main;
    
    import java.io.IOException;
    
    public class Root 
    {   
        public static void main(String[] args)
        {
            new Root();
        }
    
        public Root()
        {
            while(true)
            {
                try
                {
                    for(int y = 0; y < System.in.available(); ++y)
                    { 
                        System.out.print((char)System.in.read()); 
                    }
                }
                catch(IOException ex)
                {
                    ex.printStackTrace(System.out);
                    break;
                }
            }
        }   
    }
    
  • 5

    我喜欢以下内容:

    public String readLine(String tPromptString) {
        byte[] tBuffer = new byte[256];
        int tPos = 0;
        System.out.print(tPromptString);
    
        while(true) {
            byte tNextByte = readByte();
            if(tNextByte == 10) {
                return new String(tBuffer, 0, tPos);
            }
    
            if(tNextByte != 13) {
                tBuffer[tPos] = tNextByte;
                ++tPos;
            }
        }
    }
    

    例如,我会这样做:

    String name = this.readLine("What is your name?")
    
  • 1

    以下是已接受答案的更加发达的版本,它解决了两个常见需求:

    • 重复收集用户输入,直到输入退出值

    • 处理无效的输入值(本例中为非整数)

    Code

    package inputTest;
    
    import java.util.Scanner;
    import java.util.InputMismatchException;
    
    public class InputTest {
        public static void main(String args[]) {
            Scanner reader = new Scanner(System.in);
            System.out.println("Please enter integers. Type 0 to exit.");
    
            boolean done = false;
            while (!done) {
                System.out.print("Enter an integer: ");
                try {
                    int n = reader.nextInt();
                    if (n == 0) {
                        done = true;
                    }
                    else {
                        // do something with the input
                        System.out.println("\tThe number entered was: " + n);
                    }
                }
                catch (InputMismatchException e) {
                    System.out.println("\tInvalid input type (must be an integer)");
                    reader.nextLine();  // Clear invalid input from scanner buffer.
                }
            }
            System.out.println("Exiting...");
            reader.close();
        }
    }
    

    Example

    Please enter integers. Type 0 to exit.
    Enter an integer: 12
        The number entered was: 12
    Enter an integer: -56
        The number entered was: -56
    Enter an integer: 4.2
        Invalid input type (must be an integer)
    Enter an integer: but i hate integers
        Invalid input type (must be an integer)
    Enter an integer: 3
        The number entered was: 3
    Enter an integer: 0
    Exiting...
    

    请注意,如果没有 nextLine() ,错误输入将在无限循环中重复触发相同的异常 . 您可能希望根据具体情况使用 next() ,但要知道像 this has spaces 这样的输入会产生多个异常 .

  • 5
    import java.util.Scanner;
    
    public class userinput {
        public static void main(String[] args) {        
            Scanner input = new Scanner(System.in);
    
            System.out.print("Name : ");
            String name = input.next();
            System.out.print("Last Name : ");
            String lname = input.next();
            System.out.print("Age : ");
            byte age = input.nextByte();
    
            System.out.println(" " );
            System.out.println(" " );
    
            System.out.println("Firt Name: " + name);
            System.out.println("Last Name: " + lname);
            System.out.println("      Age: " + age);
        }
    }
    
  • 3
    class ex1 {    
        public static void main(String args[]){
            int a, b, c;
            a = Integer.parseInt(args[0]);
            b = Integer.parseInt(args[1]);
            c = a + b;
            System.out.println("c = " + c);
        }
    }
    // Output  
    javac ex1.java
    java ex1 10 20 
    c = 30
    

相关问题