240

Scannerクラスを使用してコンソールから入力を読み取るにはどうすればよいですか? このようなもの:

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

基本的に、スキャナーにユーザー名の入力を読み取らせ、入力をString変数に割り当てるだけです。

4

16 に答える 16

361

動作を説明する簡単な例は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

于 2012-08-08T19:29:23.313 に答える
35
Scanner scan = new Scanner(System.in);
String myLine = scan.nextLine();
于 2012-08-08T19:15:37.593 に答える
25

コンソールからのデータの読み取り

  • BufferedReader同期されているため、BufferedReader の読み取り操作は複数のスレッドから安全に実行できます。バッファサイズを指定するか、デフォルトのサイズ ( 8192 ) を使用できます。デフォルトは、ほとんどの目的に十分な大きさです。

    readLine() « ストリームまたはソースからデータを 1 行ずつ読み取るだけです。行は次のいずれかで終了すると見なされます: \n、\r (または) \r\n

  • Scannerは、区切り文字パターンを使用して入力をトークンに分割します。これはデフォルトで空白 (\s) に一致し、 によって認識され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);
}

Stream の入力と出力

Reader Input:     Output:
Yash 777          Line1 = Yash 777
     7            Line1 = 7

Scanner Input:    Output:
Yash 777          token1 = Yash
                  token2 = 777
于 2015-07-06T08:30:26.770 に答える
10

ユーザーからの入力を取得するには、いくつかの方法があります。このプログラムでは、タスクを達成するために 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」メソッドは、ユーザーがキーボードで入力したテキストの文字列を取得します。

ここでは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);
    }
}
于 2015-12-31T17:34:36.307 に答える
6

ユーザーの名前を尋ねて、応答が入力したものを出力する簡単なプログラムを作成できます。

または、ユーザーに 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 ステートメントがあることを忘れないでください。

于 2014-05-06T08:08:11.210 に答える
3

ユーザーが自分の を入力するときに、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);
于 2013-06-09T11:44:57.130 に答える
2

必要な操作を実行する完全なクラスを次に示します。

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);
    }
}
于 2015-03-29T05:08:33.237 に答える
2
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();
    }
}
于 2014-07-30T10:07:01.590 に答える
2
  1. 入力を読み取るには:

    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    
  2. いくつかの引数/パラメーターを使用してメソッドを呼び出したときに入力を読み取るには:

    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());
    }
    
于 2015-04-04T11:58:02.773 に答える