행복을 담는 블로그
[Java] Scanner() 로 input 값 입력 받기 본문
백준 / SWEA 알고리즘 문제 풀 때, 입력값 받는 방법
프로그래머스로 문제를 풀 때와 다르게, 백준이나 SWEA를 통해 알고리즘 문제를 풀 경우, input 값을 직접 입력하고 받아와서 문제를 풀어야 하는 형태로 이루어져 있다.
java를 처음 배우는 입장에서 처음 알고리즘 문제를 풀고자 했을 때 이 부분부터 굉장히 막막해서 진도가 안 나갔다는...
Scanner를 먼저 import를 해와한다.
Scanner sc = new Scanner(System.in);
그 다음 값을 입력 받고 싶을 때, 다음과 같이 Scanner로 부터 변수 형태에 맞게 값을 입력할 수 있다.
1. 정수를 입력 받을 때는 nextInt() 를 사용한다.
int N = sc.nextInt();
2. 문자열 입력
next() v.s. nextLine()
- 공통점 : 둘 다 문자열로 반환한다는 점.
- 차이점 : 개행문자를 무시하느냐 아니냐 차이
✔ next()
- 공백을 기준으로 한 단어 또는 한 문자씩 입력 받는다.
- 개행 문자를 가져오지 않는다.
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
System.out.println(str1);
sc.close();
}
}
✔ nextLine()
- 문자 또는 엔터를 치기 전까지의 문장 전체를 입력 받는다.
- 버퍼에 입력된 개행 문자까지 다 가져온다.
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str2 = sc.next();
System.out.println(str2);
sc.close();
}
}
3. 문자 "하나" 입력 받기
: 문자열 내에서 index 값으로 문자 하나의 값을 char 변수에 할당한다.
char singleChar = sc.next().charAt(0);
Scanner 종료하기
Scanner를 사용하였는데, 종료를 하지 않았다면, Resource leak: 'sc' is never closed
이와 같은 경고 메세지를 볼 수 있다.
Scanner를 종료해달라는 얘기로, 마지막에 close()를 해주면 된다!
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
System.out.println(A);
// 여러개의 정수를 입력 할 때,
int B = sc.nextInt();
int C = sc.nextInt();
double D = sc.nextDouble();
// 문자열을 입력 받을 때,
String str1 = sc.next();
String str2= sc.nextLine();
// 문자 1개를 입력 받고 싶다.
// char E = sc.next(); // 문자열로 반환됨 => string 이므로 char는 받을 수 없음
char F = sc.next().charAt(0); // 인덱스로 하나씩 입력 받음
// scanner를 마지막에 닫아주어야 한다.
sc.close();
}
}
'BackEnd > Java' 카테고리의 다른 글
[Java / 자료구조] 트리(Tree) (0) | 2024.12.23 |
---|---|
[Java / 자료구조] 그래프(Graph) (0) | 2024.12.21 |
[Java / 자료구조] Array v.s. LinkedList (0) | 2024.12.11 |
[Java] int 와 long 데이터 타입 크기 / 백준 2420번 (0) | 2024.07.12 |