Back-end/Java Language

Scanner

prden 2021. 7. 5. 16:54

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