반응형
Scanner Class
읽은 바이트를 Char, Integer, Float, boolean, String 등 다양한 타입으로 변환하여 리턴하는 Class
공백과 개행(' ', '\t', '\r', '\n' 등)을 기준으로 읽는다.
* 기본 선언 코드
import java.util.Scanner;
public class className {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//코드 작성...
sc.close(); //꼭 닫아주기!
}
}
- java.util.Scanner를 import하면 사용할 수 있다.
- System.in을 사용하여 키보드로 입력한 값을 읽고 설정한 타입으로 변환하여 리턴한다.
- 스캐너를 다썼다면 .close()로 꼭 닫아주기!
더보기
...추가 설명...
import란?
- 현재 작성하고 있는 소스파일에 다른 클래스를 불러온다.
- Java를 설치하면 쓸 수 있는 기본 클래스들이 엄청 많다!
System.in 이란?
- 자바의 표준 입력 스트림
- 입력되는 값을 바이트로 리턴
Scanner 주요 Method
| 자료형 | 메소드 | 역할 |
| String | next() | 문자열로 리턴 |
| byte | nextByte() | byte 타입으로 리턴 |
| short | nextShort() | short 타입으로 리턴 |
| int | nextInt() | int 타입으로 리턴 |
| long | nextLong() | long 타입으로 리턴 |
| float | nextFloat() | float 타입으로 리턴 |
| double | nextDouble() | double 타입으로 리턴 |
| String | nextLine() | ' \n '을 포함하는 한 라인을 읽고 ' \n '을 버린 나머지만 리턴 |
| void | close() | 스캐너 사용 종료 |
| boolean | hasNext() | 현재 입력된 토큰이 있으면 true 반환, 없을 시 새로운 입력이 들어올 때까지 기다리기 Ctrl+z가 입력되면 입력 끝이란 뜻이므로 false 리턴 |
Scanner 사용 예제
<코드>
import java.util.Scanner;
public class Star {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//공백으로 구분해서 받아올 수 있다!!
int a = sc.nextInt();//Int형으로 return받기
int b = sc.nextInt();
System.out.println(a);
System.out.println(b);
sc.close();
}
}
<실행 결과>

- 입력할 때는 한줄에 공백으로 구분하여 입력한다.
- nextInt()로 하나 씩 받아온다.
* next()와 nextLine()의 차이
- next() : 공백과 개행을 기준으로 읽음!
import java.util.Scanner;
public class Star {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();//공백, 개행 기준으로 하나 읽어오기
System.out.println(a);
sc.close();
}
}

- nextLine() : 공백은 그대로 두고 개행을 기준으로 읽음!
import java.util.Scanner;
public class Star {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();//개행 기준으로 하나 읽어오기
System.out.println(a);
sc.close();
}
}

반응형
'Back-end' 카테고리의 다른 글
| [Spring Data JPA] JPA(Java Persistence API)란? (0) | 2021.11.15 |
|---|---|
| [Java] JVM(Java Virtual Machine)에 대해 (0) | 2021.11.14 |
| [Java] Java Pattern 클래스(자바 정규 표현식) - 사용법 (0) | 2021.11.10 |
| [Java] Arrays 클래스에 대해, Arrays 클래스 Method 정리 (0) | 2021.11.09 |
| [Java] 자바에서의 print, printf, println 차이점 (0) | 2021.11.08 |