1. 특징
1) 입력을 받을 때 String으로 받고 싶으면 next() 혹은 nextLine()을 사용하면 되고
int 로 입력받고 싶을 경우 nextInt()를 사용하여 입력받으면 된다.
2) 공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다.
Scanner의 입력 메소드들은 대부분 공백과 개행(' ', '\t', '\r', '\n')을 기준으로 읽는다.
2. 사용예시
import java.util.Scanner; // Scanner 클래스 호출
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); // Scanner 객체 생성
byte a = in.nextByte(); // byte 형 입력 및 리턴
short b = in.nextShort(); // short 형 입력 및 리턴
int c = in.nextInt(); // int 형 입력 및 리턴
long d = in.nextLong(); // long 형 입력 및 리턴
float e = in.nextFloat(); // float 형 입력 및 리턴
double f = in.nextDouble(); // double 형 입력 및 리턴
boolean g = in.nextBoolean(); // boolean 형 입력 및 리턴
String h = in.next(); // String 형 입력 및 리턴 (공백을 기준으로 한 단어를 읽음)
String i = in.nextLine(); // String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)
}
}
3. next() vs. nextLine()의 차이
- next()는 한 단어 즉, 공백을 기준으로 문장 한 개만 읽어들인다. 반면, nextLine()은 한줄 즉, 한 줄에 입력된 여러 단어를 읽어들인다.
예를 들어 "This is a car"을 입력했을 때 next()를 사용시 This만 담긴다. nextLine()은 저 한줄 다담김
*주의할 점:
next() 와 nextLine()연달아 쓸 때 주의해야.
바로 쓰면 nextLine()에서 앞에 개행되어서 나옴
따라서 next() 쓰고 sc.nextLine() 쓰고 nextLine()써야된다.
'Back-end > Java Language' 카테고리의 다른 글
ENUM (0) | 2021.07.30 |
---|---|
람다식(Lamda expression) (0) | 2021.07.19 |
0. StringBuilder vs. StringBuffer (0) | 2021.07.04 |
0. BufferedReader, BufferedWriter, Scanner, StirngTockenizer (0) | 2021.07.03 |
X. GarbageCollection(가비지 컬렉션) (0) | 2021.06.10 |