Java では、コマンド ライン環境 (コンソール) でユーザー入力を読み取る 4 つの異なる方法があります。
1. バッファリングされたリーダークラスを使用する
これは、JDK1.0 で導入された古典的な Java 入力メソッドです。このメソッドは、InputStreamReader で System.in (標準入力ストリーム) をラップすることによって使用され、InputStreamReader は BufferedReader でラップされ、コマンド ラインでユーザー入力を読み取ることができます。
効率的な読み取りのために入力はバッファリングされます。
ラッパーコードは覚えるのが難しいです。
埋め込む:
// Java program to demonstrate BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args)
throws IOException
{
// Enter data using BufferReader
BufferedReader reader = new BufferedReader(
new InputStreamReader(System.in));
// Reading data using readLine
String name = reader.readLine();
// Printing the read line
System.out.println(name);
}
}
入力:
尚学堂
出力:
補助スペース:O(1)
尚学堂
2. Scannerクラスを使用する
これはおそらく、入力を受け入れる最も好ましい方法です。Scanner クラスの主な目的は、正規表現を使用してプリミティブ型と文字列を解析することですが、コマンド ラインでのユーザー入力を読み取るために使用することもできます。
トークン化された入力からプリミティブ (nextInt()、nextFloat() など) を解析するための便利なメソッド。
正規表現を使用してトークンを検索できます。
読み取りが同期していない
// Java program to demonstrate working of Scanner in Java
import java.util.Scanner;
class GetInputFromUser {
public static void main(String args[])
{
// Using Scanner for Getting Input from User
Scanner in = new Scanner(System.in);
String s = in.nextLine();
System.out.println("You entered string " + s);
int a = in.nextInt();
System.out.println("You entered integer " + a);
float b = in.nextFloat();
System.out.println("You entered float " + b);
}
}
入力:
hello
12
3.4
出力:
您输入了字符串 hello
您输入了整数 12
你输入了 float 3.4
3. コンソールクラスを使用する
これは、コマンド ラインからユーザー入力を読み取るための推奨される方法となっています。さらに、ユーザーが入力した文字をエコーせずにパスワードのような入力を読み取るために使用でき、書式文字列構文 ( System.out.printf() など) も使用できます。
アドバンテージ:
- 入力した文字をエコーせずにパスワードを読み上げます。
- 読み取り方法は同期です。
- フォーマット文字列構文を使用できます。
- 非対話型環境 (IDE など) では使用できません。
// Java program to demonstrate working of System.console()
// Note that this program does not work on IDEs as
// System.console() may require console
public class Sample {
public static void main(String[] args)
{
// Using Console to input data from user
String name = System.console().readLine();
System.out.println("You entered string " + name);
}
}
入力:
hello
出力:
您输入了字符串 hello
4. コマンドラインパラメータの使用
競合エンコーディングのユーザー入力に最もよく使用されます。コマンドライン引数は文字列形式で保存されます。Integer クラスの parseInt メソッドは、文字列引数を Integer に変換します。実行中のフロートやその他の場合も同様です。args[] の使用法がこの入力フォームに表示されます。情報の転送はプログラムの実行中に発生します。コマンドラインは args[] に与えられます。これらのプログラムは cmd で実行する必要があります。
コード:
// Program to check for command line arguments
class Hello {
public static void main(String[] args)
{
// check if length of args array is
// greater than 0
if (args.length > 0) {
System.out.println(
"The command line arguments are:");
// iterating the args array and printing
// the command line arguments
for (String val : args)
System.out.println(val);
}
else
System.out.println("No command line "
+ "arguments found.");
}
}
コマンドラインパラメータ:
javac GFG1.java
java Main Hello World
出力:
命令行参数是:
你好
世界
Java学習ビデオ
Java の基本:
Java300話、Java必須の高画質動画_Javaを楽しく学ぶ、実践図付き
Java プロジェクト:
【Javaゲームプロジェクト】Java言語で古典的なマインスイーパゲームの作り方を教える1時間_ゲーム開発方法を教えます