- 오늘의 학습 키워드
- 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();
}
}
}
'Study > 코딩스터디_TIL' 카테고리의 다른 글
[JAVA 스터디] 250121 해시 알고리즘 (0) | 2025.01.21 |
---|---|
[JAVA 스터디] 250120 hash 함수 (1) | 2025.01.20 |
[JAVA 스터디] 250116 BufferedReader (1) | 2025.01.16 |
[JAVA 스터디] 250114 Buffered Reader - 문자열 출력 (1) | 2025.01.15 |
[JAVA 스터디] 250113 Math.random - 랜덤으로 난수 생성하기 (0) | 2025.01.13 |