如何使用Scanner类从控制台读取输入?就像这样:

System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code

基本上,我想要的只是让扫描器读取用户名的输入,并将输入分配给一个String变量。


当前回答

有几种方法可以从用户那里获得输入。在这个程序中,我们将使用Scanner类来完成任务。这个Scanner类属于java。util,因此程序的第一行是import java.util.Scanner;它允许用户读取Java中各种类型的值。import语句行必须在java程序的第一行中,我们将进一步处理代码。

in.nextInt(); // It just reads the numbers

in.nextLine(); // It get the String which user enters

为了访问Scanner类中的方法,创建一个新的Scanner对象作为“in”。现在我们用它的一种方法,那就是“next”。“next”方法获取用户在键盘上输入的文本字符串。

这里我使用in.nextLine();来获取用户输入的字符串。

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);
    }
}

其他回答

读取输入: 扫描仪扫描仪=新的扫描仪(System.in); 字符串输入= scanner.nextLine(); 当你调用一个带有参数/形参的方法时读取输入: 如果(arg游戏。长度!= 2){ System.err。println(" utilzare: java Grep < filier > <cuvant>"); system . exit (1); } 尝试{ grep (args [0], arg游戏[1]); } catch (IOException e) { System.out.println (e.getMessage ()); }

import java.util.*;

class Ss
{
    int id, salary;
    String name;

   void Ss(int id, int salary, String name)
    {
        this.id = id;
        this.salary = salary;
        this.name = name;
    }

    void display()
    {
        System.out.println("The id of employee:" + id);
        System.out.println("The name of employye:" + name);
        System.out.println("The salary of employee:" + salary);
    }
}

class employee
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);

        Ss s = new Ss(sc.nextInt(), sc.nextInt(), sc.nextLine());
        s.display();
    }
}
import java.util.Scanner;  // Import the Scanner class

class Main { // Main is the class name
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);  // Create a Scanner object
    System.out.println("Enter username");

    String userName = myObj.nextLine();  // Read user input
    System.out.println("Username is: " + userName);  // Output user input
  }
}

有一种从控制台读取的简单方法。

请查看以下代码:

import java.util.Scanner;

    public class ScannerDemo {

        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);

            // Reading of Integer
            int number = sc.nextInt();

            // Reading of String
            String str = sc.next();
        }
    }

具体理解请参考以下文件。

Doc

现在我们来详细了解一下Scanner类的工作原理:

public Scanner(InputStream source) {
    this(new InputStreamReader(source), WHITESPACE_PATTERN);
}

这是用于创建Scanner实例的构造函数。

这里我们传递的是InputStream引用,它只是一个System.In。在这里,它打开了用于控制台输入的InputStream管道。

public InputStreamReader(InputStream in) {
    super(in);
    try {
        sd = StreamDecoder.forInputStreamReader(in, this, (String)null); // ## Check lock object
    }
    catch (UnsupportedEncodingException e) {
        // The default encoding should always be available
        throw new Error(e);
    }
}

通过系统。在这段代码中,将打开套接字以从控制台读取。

有几种方法可以从用户那里获得输入。在这个程序中,我们将使用Scanner类来完成任务。这个Scanner类属于java。util,因此程序的第一行是import java.util.Scanner;它允许用户读取Java中各种类型的值。import语句行必须在java程序的第一行中,我们将进一步处理代码。

in.nextInt(); // It just reads the numbers

in.nextLine(); // It get the String which user enters

为了访问Scanner类中的方法,创建一个新的Scanner对象作为“in”。现在我们用它的一种方法,那就是“next”。“next”方法获取用户在键盘上输入的文本字符串。

这里我使用in.nextLine();来获取用户输入的字符串。

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);
    }
}