如何使用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变量。
当前回答
你可以流动这段代码:
Scanner obj= new Scanner(System.in);
String s = obj.nextLine();
其他回答
input.nextInt()方法有问题——它只读取int值。
因此,当使用input.nextLine()读取下一行时,您会收到“\n”,即回车键。所以要跳过这个,你必须添加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();
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
}
}
你可以在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();
}
}
具体理解请参考以下文件。
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);
}
}
通过系统。在这段代码中,将打开套接字以从控制台读取。
说明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(字符串模式)。
你可以在java.util.Scanner的API文档中找到更多关于它们实现的信息