Language/Java

[자바_복습] Scanner 입력 메서드 구분

simDev1234 2022. 3. 4. 10:05

[ Scanner 클래스의 입력 메서드 ]

/*아래의 경우, 
  키보드 버퍼에서 입력구분자(공백 또는 엔터) 전까지 가져온다.*/
next();
nextInt();
nextDouble();
nextBoolean();

/*nextLine();의 경우,
  키보드 버퍼에서 입력구분자(엔터)까지 가져온다. */
nextLine();

1. nextLine()

▼ nextLine() : 입력구분자(엔터)까지 가져옴(ex.홍길동E) --> E빼고 나머지 출력

nextLine()가 홍길동E를 가져옴

 

2. nextDouble() --> nextLine()

▼ nextDouble() : 입력구분자(공백 또는 E) 전까지 가져옴 

▼ nextDouble() --> nextLine() : 앞전에 남은 E를 nextLine()이 가져옴

//해결방법 : scan.nextLine()을 다음에 적어줌

package mymain;

import java.util.Scanner;

public class PrintTest {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		//콘솔창 입력 : 이름, 나이, 주소, 키, 몸무게
		System.out.print("이름 : ");
		String name = scan.nextLine();
		
		System.out.print("나이 : ");
		int age = scan.nextInt();
		scan.nextLine();
		
		System.out.print("주소 : ");
		String addr = scan.nextLine();
		
		System.out.print("키 : ");
		double height = scan.nextDouble();
		
		System.out.printf("몸무게 : ");
		double weight = scan.nextDouble();
		
		System.out.printf("기타 : ");
		double extra = scan.nextDouble();
		
		scan.close();
		
		//출력
		System.out.printf(" 이름 : %s\n",name);
		System.out.printf(" 나이 : %d\n",age);
		System.out.printf(" 주소 : %s\n",addr);
		System.out.printf("  키 : %.3f\n",height);
		System.out.printf("몸무게 : %.3f\n",weight);
		System.out.printf("기타 : %.3f\n",extra);
	}

}

>> 콘솔 입력 + 결과

이름 : 홍길동
나이 : 30
주소 : 서울시 모모구
키 : 160
몸무게 : 99
기타 : 45
 이름 : 홍길동
 나이 : 30
 주소 : 서울시 모모구
  키 : 160.000
몸무게 : 99.000
기타 : 45.000

 

3. nextDouble() --> nextDouble()

▼ nextDouble() : 입력구분자(공백 또는 E) 전까지 가져옴 

▼ nextDouble() --> nextDouble() : 앞전의 E는 삭제되며, 새로 입력한 텍스트 입력구분자 전까지 가져옴