Scanner
クラスを使用してコンソールから入力を読み取る方法を教えてください。このようなもの:
System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code
基本的に、スキャナーにユーザー名の入力を読み取らせ、その入力をString
変数に代入させるだけです。
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
を参照してください。
Scanner scan = new Scanner(System.in);
String myLine = scan.nextLine();
コンソールからデータを読み取る
BufferedReader
は同期化されているため、BufferedReaderの読み取り操作は複数のスレッドから安全に実行できます。バッファサイズを指定するか、デフォルトサイズ( 8192 )を使用することができます。デフォルトはほとんどの目的に十分な大きさです。
readLine() « ストリームまたはソースからデータを1行ずつ読み取る。行は、次のいずれかで終了すると見なされる。\ n、\ r(または)\ r\n
Scanner
は、デフォルトで空白文字(\ s)に一致し、 Character.isWhitespace
で認識される区切り文字パターンを使用して、入力をトークンに分割します。
« ユーザーがデータを入力するまで、スキャン操作はブロックされ、入力を待っています。 « スキャナを使用( 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 = 777
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"として新しいスキャナオブジェクトを作成します。今度は、そのメソッドの1つである "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);
}
}
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);
}
}
単純なプログラムを作成してユーザーの名前を入力し、返信に使用されたものが何であれ、印刷することができます。
または、2つの数値を入力するようにユーザーに依頼し、それらの数値を加算、乗算、減算、または除算して、計算機の動作と同じようにユーザー入力に対する回答を印刷できます。
そこで、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);
これが必要な操作を実行する完全なクラスです。
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);
}
}
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();
}
}
入力を読むには:
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());
}
このコードを流すことができます:
Scanner obj= new Scanner(System.in);
String s = obj.nextLine();
コンソールから読む簡単な方法があります。
以下のコードを見つけてください。
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を渡すことで、このコードはコンソールから読み込むためのソケットを開きます。
JavaでScannerクラスを使うことができます
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("String: " + s);