programing

Java의 Scanner 클래스를 사용하여 콘솔에서 입력을 읽는 방법은 무엇입니까?

projobs 2022. 9. 18. 14:19
반응형

Java의 Scanner 클래스를 사용하여 콘솔에서 입력을 읽는 방법은 무엇입니까?

은 어떻게 수 ?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();

유저명을 취득하려면 , 아마 를 사용합니다.

System.out.println("Enter your username: ");
Scanner scanner = new Scanner(System.in);
String username = scanner.nextLine();
System.out.println("Your username is " + username);

또한 입력에 대한 제어가 더 필요한 경우에도 를 사용할 수 있습니다.또한username★★★★★★ 。

구현에 대한 자세한 내용은 다음 API 문서를 참조하십시오.

Scanner scan = new Scanner(System.in);
String myLine = scan.nextLine();

콘솔에서 데이터 읽기

  • BufferedReader 는 동기화되므로 여러 스레드에서 BufferedReader 읽기 작업을 안전하게 수행할 수 있습니다.버퍼 크기를 지정하거나 기본 크기(8192)를 사용할 수 있습니다.기본값은 대부분의 경우 충분히 큽니다.

    readLine() « 스트림 또는 소스에서 데이터를 한 줄씩 읽기만 하면 됩니다.회선은 \n, \r(또는) \r\n 중 하나에 의해 종단된 것으로 간주됩니다.

  • Scanner 는 딜리미터 패턴을 사용하여 입력을 토큰으로 분할합니다.이 패턴은 기본적으로 공백(\s)과 일치하며 에 의해 인식됩니다.

    « 사용자가 데이터를 입력할 때까지 스캔 작업이 차단되어 입력을 기다릴 수 있습니다. « 스트림에서 특정 토큰 유형을 구문 분석하려면 스캐너(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", 즉 키를 받습니다.이를 건너뛰려면 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();

사용자로부터 입력을 받는 방법은 여러 가지가 있습니다.이 프로그램에서는 이 작업을 수행하기 위해 스캐너 클래스를 수강합니다.는 이음음음음음음음음음음 comes comes comes comes comes comes comes comes comes comes comes comes 。java.util따라서 프로그램의 첫 번째 행은 import java.displays입니다.스캐너: 사용자가 Java에서 다양한 유형의 값을 읽을 수 있습니다.Import 스테이트먼트 행은 Java 프로그램의 첫 번째 줄에 있어야 하며, 코드에 대해서는 더 진행됩니다.

in.nextInt(); // It just reads the numbers

in.nextLine(); // It get the String which user enters

스캐너 클래스의 메서드에 액세스하려면 "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);
    }
}

간단한 프로그램을 만들어 사용자의 이름을 묻고 회신에서 입력된 내용을 인쇄할 수 있습니다.

또는 사용자에게 두 개의 숫자를 입력하도록 요청하면 계산기의 동작처럼 해당 숫자를 더하거나, 곱하거나, 빼거나, 나누거나, 사용자 입력에 대한 답을 출력할 수 있습니다.

스캐너 클래스가 필요합니다.해야 한다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);
  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());
    }
    
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);
    }
}

콘솔에서 읽는 간단한 방법이 있습니다.

다음 코드를 확인하십시오.

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();
        }
    }

자세한 내용은 아래 문서를 참조해 주십시오.

문서

이제 스캐너 클래스의 작업에 대한 자세한 이해에 대해 살펴보겠습니다.

public Scanner(InputStream source) {
    this(new InputStreamReader(source), WHITESPACE_PATTERN);
}

스캐너 인스턴스를 만들기 위한 생성자입니다.

여기서 우리는 다음을 지나가고 있다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);
    }
}

시스템을 통과합니다.이 코드를 입력하면 콘솔에서 읽을 수 있도록 소켓이 열립니다.

다음의 코드를 플로우 할 수 있습니다.

Scanner obj= new Scanner(System.in);
String s = obj.nextLine();

Java에서 스캐너 클래스를 사용할 수 있습니다.

Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("String: " + s);
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
  }
}

언급URL : https://stackoverflow.com/questions/11871520/how-can-i-read-input-from-the-console-using-the-scanner-class-in-java

반응형