https://www.w3schools.com/java/java_user_input.asp

 

Java User Input (Scanner class)

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

1. Scanner

  • Scanner 클래스 는 Scanner 사용자 입력을 받는 데 사용되며 java.util패키지에서 찾을 수 있다.
  • Scanner 클래스 를 사용하려면 Scanner클래스의 개체를 만들고 Scanner클래스 메서드를 사용한다 
  • 예문은 nextLine() 메서드를 사용하여 문자열을 입력받는다
import java.util.Scanner;  // Import the Scanner class

class Main {
  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
  }
}


Enter username

 

 1) 입력 유형

Method
Description
nextBoolean() Reads a boolean value from the user
nextByte() Reads a byte value from the user
nextDouble() Reads a double value from the user
nextFloat() Reads a float value from the user
nextInt() Reads a int value from the user
nextLine() Reads a String value from the user
nextLong() Reads a long value from the user
nextShort() Reads a short value from the user
import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);

    System.out.println("Enter name, age and salary:");

    // String input
    String name = myObj.nextLine();

    // Numerical input
    int age = myObj.nextInt();
    double salary = myObj.nextDouble();

    // Output input by user
    System.out.println("Name: " + name);
    System.out.println("Age: " + age);
    System.out.println("Salary: " + salary);
  }
}



Enter name, age and salary:

 

참고: 잘못된 입력(예: 숫자 입력의 텍스트)을 입력하면 예외/오류 메시지(예: "InputMismatchException")가 표시된다

 

2. BufferReader

Scanner 클래스는 소량의 문자열을 입력받는데 용이하다

BufferReader 클래스는 용량이 많은 문자열을 입력받는데 적합하다
- 문자열을 하나식 전달하지 않고 버퍼에 담아 두었다가 한번에 전달한다
- 속도가 빠르고 효율적이다

BufferReader 는 Enter만을 경계로 입력값을 인식한다
- 입력값을 나누는 가공 작업이 추가로 필요하다

public class String_BufferedReader {
    public static void main(String[] args) throws Exception {
        //BufferReader를 사용하여 readLine()로 입력받을 경우 예외처리가 필수이다

        //BufferReader (InputStreamReader) : 문자열 입력 메서드
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //InputStreamReader : 문자열 입력 메서드

        String str = br.readLine();  //String 문자열을 라인 단위로 입력, Enter를 경계로 한다

        String arr[] = str.split(" ");  //" "빈칸을 경계로 하여 배열로 변환한다

        int str1 = Integer.parseInt(br.readLine());  //정수형의 문자열 입력, 형변환이 필요하다

//        System.out.println(str);
        System.out.println(arr);
        System.out.println(str1);


        //BufferWriter (OutputStreamWriter) : 문자열 출력 메서드
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        bw.newLine();  //줄바꿈 , "\n"와 같다
        bw.write(str + "\n");  //출력
        bw.newLine(); //줄바꿈 , "\n"와 같다
        bw.flush();//남아있는 데이터를 모두 출력
        bw.close();//스트림 닫음
    }

    // 문자열 가공 방법
    public void manufacturing() throws Exception {
        // 1번째 방법) StringTokenizer를 이용한다.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()); //StringTokenizer인자값에 입력 문자열 넣음
        int a = Integer.parseInt(st.nextToken()); //첫번째 호출을 to int
        int b = Integer.parseInt(st.nextToken()); //두번째 호출을 to int

        // 두번째 방법) string을 한번에 받아서 split을 이용해 배열로 변환
        String s = br.readLine();
        String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음

        return;
    }
}
> Task :classes
 bw.newLine();
123456789

> Task :String_BufferedReader.main()
[Ljava.lang.String;@2d363fb3
123456789

 bw.newLine();



'JAVA' 카테고리의 다른 글

Java - 문자열 바꾸기 - replace  (0) 2022.09.13
Java - Static  (0) 2022.08.14
Java - 날짜(Date), 시간(Time)  (0) 2022.08.08
Java - 제어문(Control Flow Statements)  (0) 2022.06.02
Java - 콘솔 입출력(I/O)  (0) 2022.06.02

1. 콘솔 출력(Console Output)

 1) 출력하기

  • System.out.print( )
  • ( ) 안의 내용을 단순히 출력한다
  • 줄바꿈은 하지 않는다

 2) 출력하고 줄 바꾸기

  • System.out.println( )  //ln 은 line 의 약자이다
  • ( ) 안의 내용을 단순히 출력한다
  • 출력 후 줄바꿈을 한다

 3) 형식대로 출력하기

  • System.out.printf( )   //f 은  formatted 의 약자이다
  • ( ) 안의 내용을 지시자에 의해 지정되는 형식으로 출력한다
  • 출력 후 줄바꿈을 하지 않는다
지시자 출력 형식 지시자 출력형식
%b 불리언 %c 문자
%d 10진수 %s 문자열
%o 8진수 %n 줄바꿈
%x, %X 16진수    

 

2. 콘솔 입력(Console Input)

 1) 스캐너(Scanner)

  • 화면으로부터 데이터를 입력받는 기능을 제공하는 클래스이다
  • 객체를 생성한 후 사용해야 한다
  • 더보기
    Scanner scanner = new Scanner(System.in);    //System.in : 화면입력 명령어
import java.util.*;

public class Aaaa {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        //int num = scanner.nextInt();
        String input = scanner.nextLine();
        //System.out.println(num);
        System.out.println(input);
    }
}

result
kim //입력 후 enter
kim

 

'JAVA' 카테고리의 다른 글

Java - 날짜(Date), 시간(Time)  (0) 2022.08.08
Java - 제어문(Control Flow Statements)  (0) 2022.06.02
Java - 연산자(Operator)  (0) 2022.06.02
자료구조 - 트리(Tree)  (0) 2022.05.30
메서드 모음(method)  (0) 2022.05.29

+ Recent posts