본문 바로가기

Study/코딩스터디_TIL

[JAVA 스터디] 250115 Scanner

- 오늘의 학습 키워드

  • Scanner 클래스의 특징

기본적인 데이터 타입들을 Scanner 의 메소드를 사용하여 입력받을 수 있다.

예로 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next() 나 nextLine() 을, int(정수)로 입력받고 싶다면 nextInt() 를 사용하여 입력받으면 알아서 해당 타입으로 입력된다.


Scanner 을 사용할 시 util 패키지를 경로의 Scanner 클래스를 호출해야 한다.

자바에서 쓰이는 대부분의 클래스는 lang 패키지가 아니라면 import 을 통해 호출해주어야 한다.
Scanner 의 경우는 java.util 패키지에 있다.



공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다.

Scanner 의 입력 메소드들은 대부분 공백과 개행(' ', '\t', '\r', '\n' 등등..)을 기준으로 읽는다. 이 덕분에 사용자의 편의에 따라 쉽게 입력을 받을 수 있다.

 

 

  • Scanner 사용해보기

 

 

 

 

 

Step 1.         import 문   

 

 

 

앞서 Scanner 의 특징에서 언급했듯이 Scanner 클래스를 사용하기 위해서는 호출해주어야 한다고 했다.

 

자바의 경우 java.util 패키지 안에 Scanner 클래스가 있으므로 다음과 같이 import 를 쓴 후 해당 클래스 경로를 호출하도록 한다.

 

import java.util.Scanner;	// Scanner 클래스 호출

 

 

 

 

 

 

 

 

 

Step 2.         Scanner 객체 생성   

 

 

우리가 입력을 하기 위해 Scanner 클래스를 쓰고자 먼저 클래스를 호출했다.

그다음으로 해야 할 것이 바로 객체 생성이다.

 

기본적으로 객체 생성하는 방법은 다음과 같다.

클래스_이름  객체_이름 = new 클래스_이름();

 

 

즉, 우리는 Scanner 라는 클래스를 사용할 것이기 때문에 클래스 이름에는 Scanner 가 들어가야 한다.

 

객체 이름은 여러분들이 편한 대로 지정하면 된다.

(대체로 Scanner 의 경우 객체이름은 in, input, sc, scan 이렇게 4가지가 가장 많이 쓰인다.)

 

 

Scanner 의 경우 아래처럼 객체를 생성해주면 된다.

Scanner in = new Scanner(System.in); // Scanner 객체 생성

 

 

 - 어떤 문제가 있었고, 나는 어떤 시도를 했는지

2675번 백준 

 

문자열 반복

 

그리고 반드시 문자열 S 를 입력받을 때 Scanner.nextLine() 이 아닌 Scanner.next() 로 입력받아야 한다.

nextLine() 으로 입력받으면 입력 과정에서 공백까지 읽어버리기 때문이다.

 

 

- 문제 풀이 

import java.util.Scanner;
public class Main {
 
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int T = in.nextInt();
		for(int i = 0; i < T; i++) {
	
			int R = in.nextInt();
			String S = in.next();	// nextLine() 을 쓰면 error!
			
			for(int j = 0; j < S.length(); j++) {           
				for(int k = 0; k < R; k++) {	// R 만큼 반복 출력
					System.out.print(S.charAt(j));
				}
			}
            
			System.out.println();
		}
	}
}
728x90