如何使用Scanner该类从控制台读取输入?像这样:
System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code
基本上,我只需要让扫描程序读取用户名的输入,然后将输入分配给String变量。
如何使用Scanner该类从控制台读取输入?像这样:
System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code
基本上,我只需要让扫描程序读取用户名的输入,然后将输入分配给String变量。
Answers:
一个简单的示例来说明如何java.util.Scanner从中读取单个整数System.in。这真的很简单。
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
要检索用户名,我可能会使用sc.nextLine()。
System.out.println("Enter your username: ");
Scanner scanner = new Scanner(System.in);
String username = scanner.nextLine();
System.out.println("Your username is " + username);
next(String pattern)如果您想对输入进行更多控制,或者仅验证username变量,也可以使用。
您可以在API文档中找到有关其实现的更多信息java.util.Scanner
从控制台读取数据
BufferedReader由于是同步的,因此可以从多个线程安全地完成BufferedReader上的读取操作。可以指定缓冲区大小,也可以使用默认大小(8192)。对于大多数用途,默认值足够大。
readLine() « 只是从流或源中逐行读取数据。一条线被以下任何一个终止:\ n,\ r(或)\ r \ n
Scanner使用定界符模式将其输入分解为标记,默认情况下,该定界符与空格匹配,并由识别Character.isWhitespace。
« 在用户输入数据之前,扫描操作可能会阻塞,等待输入。 « 如果要从流中解析特定类型的令牌,请使用Scanner(BUFFER_SIZE = 1024)。 « 但是,扫描仪不是线程安全的。它必须在外部同步。
next()«查找并返回此扫描仪的下一个完整令牌。nextInt()«将输入的下一个标记扫描为int。
码
String name = null;
int number;
java.io.BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
name = in.readLine(); // If the user has not entered anything, assume the default value.
number = Integer.parseInt(in.readLine()); // It reads only String,and we need to parse it.
System.out.println("Name " + name + "\t number " + number);
java.util.Scanner sc = new Scanner(System.in).useDelimiter("\\s");
name = sc.next();  // It will not leave until the user enters data.
number = sc.nextInt(); // We can read specific data.
System.out.println("Name " + name + "\t number " + number);
// The Console class is not working in the IDE as expected.
java.io.Console cnsl = System.console();
if (cnsl != null) {
    // Read a line from the user input. The cursor blinks after the specified input.
    name = cnsl.readLine("Name: ");
    System.out.println("Name entered: " + name);
}Reader Input:     Output:
Yash 777          Line1 = Yash 777
     7            Line1 = 7
Scanner Input:    Output:
Yash 777          token1 = Yash
                  token2 = 777BufferedReader, Scanner从本地文件(OR)网络文件读取数据。
                    input.nextInt()方法存在问题-它仅读取int值。
因此,当使用input.nextLine()读取下一行时,您会收到“ \ n”,即Enter键。因此,要跳过此步骤,您必须添加input.nextLine()。
像这样尝试:
 System.out.print("Insert a number: ");
 int number = input.nextInt();
 input.nextLine(); // This line you have to add (it consumes the \n character)
 System.out.print("Text1: ");
 String text1 = input.nextLine();
 System.out.print("Text2: ");
 String text2 = input.nextLine();有几种方法可以从用户那里获取输入。在此程序中,我们将使用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类中的方法,请创建一个新的扫描仪对象为“ in”。现在,我们使用其方法之一,即“ 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);
    }
}import java.util.Scanner;
public class ScannerDemo {
    public static void main(String[] arguments){
        Scanner input = new Scanner(System.in);
        String username;
        double age;
        String gender;
        String marital_status;
        int telephone_number;
        // Allows a person to enter his/her name   
        Scanner one = new Scanner(System.in);
        System.out.println("Enter Name:" );  
        username = one.next();
        System.out.println("Name accepted " + username);
        // Allows a person to enter his/her age   
        Scanner two = new Scanner(System.in);
        System.out.println("Enter Age:" );  
        age = two.nextDouble();
        System.out.println("Age accepted " + age);
        // Allows a person to enter his/her gender  
        Scanner three = new Scanner(System.in);
        System.out.println("Enter Gender:" );  
        gender = three.next();
        System.out.println("Gender accepted " + gender);
        // Allows a person to enter his/her marital status
        Scanner four = new Scanner(System.in);
        System.out.println("Enter Marital status:" );  
        marital_status = four.next();
        System.out.println("Marital status accepted " + marital_status);
        // Allows a person to enter his/her telephone number
        Scanner five = new Scanner(System.in);
        System.out.println("Enter Telephone number:" );  
        telephone_number = five.nextInt();
        System.out.println("Telephone number accepted " + telephone_number);
    }
}您可以编写一个简单的程序来询问用户名,并打印任何使用输入的答复。
或要求用户输入两个数字,您可以对这些数字进行加,乘,减或除运算,并像计算器的行为一样打印用户输入的答案。
因此,您需要Scanner类。您必须import java.util.Scanner;,并且在代码中需要使用:
Scanner input = new Scanner(System.in);input 是一个变量名。
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语句。
一个简单的例子:
import java.util.Scanner;
public class Example
{
    public static void main(String[] args)
    {
        int number1, number2, sum;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter First multiple");
        number1 = input.nextInt();
        System.out.println("Enter second multiple");
        number2 = input.nextInt();
        sum = number1 * number2;
        System.out.printf("The product of both number is %d", sum);
    }
}当用户输入他/她时username,还要检查输入是否有效。
java.util.Scanner input = new java.util.Scanner(System.in);
String userName;
final int validLength = 6; // This is the valid length of an user name
System.out.print("Please enter the username: ");
userName = input.nextLine();
while(userName.length() < validLength) {
    // If the user enters less than validLength characters
    // ask for entering again
    System.out.println(
        "\nUsername needs to be " + validLength + " character long");
    System.out.print("\nPlease enter the username again: ");
    userName = input.nextLine();
}
System.out.println("Username is: " + userName);读取输入:
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();在调用带有某些参数/参数的方法时读取输入:
if (args.length != 2) {
    System.err.println("Utilizare: java Grep <fisier> <cuvant>");
    System.exit(1);
}
try {
    grep(args[0], args[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;
public class App {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        final int valid = 6;
        Scanner one = new Scanner(System.in);
        System.out.println("Enter your username: ");
        String s = one.nextLine();
        if (s.length() < valid) {
            System.out.println("Enter a valid username");
            System.out.println(
                "User name must contain " + valid + " characters");
            System.out.println("Enter again: ");
            s = one.nextLine();
        }
        System.out.println("Username accepted: " + s);
        Scanner two = new Scanner(System.in);
        System.out.println("Enter your age: ");
        int a = two.nextInt();
        System.out.println("Age accepted: " + a);
        Scanner three = new Scanner(System.in);
        System.out.println("Enter your sex: ");
        String sex = three.nextLine();
        System.out.println("Sex accepted: " + sex);
    }
}Scanner。
                    您可以传递以下代码:
Scanner obj= new Scanner(System.in);
String s = obj.nextLine();您可以在Java中使用Scanner类
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("String: " + s);有一种从控制台读取的简单方法。
请找到以下代码:
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();
        }
    }有关详细的理解,请参阅以下文档。
现在,让我们谈谈对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);
    }
}通过传递System.in,此代码将打开套接字以从控制台读取。