자바 기초 - 2

mDev_97·2021년 12월 30일
0

Java

목록 보기
3/28

자바에서의 키 입력

System.in

• 직접 키보드로부터 읽는 자바 표준 입력 스트림
• 키 값을 바이트(문자x)로 리턴

System.in 사용 시 문제점

• 키의 값을 바이트 데이터로 넘기므로 응용 프로그램이 문자 정보로 변환해야 한다.

Scanner 클래스

• System.in 에게 키를 읽게 하고, 읽은 바이트를 문자, 정수, 실수 등 원하는 타입으로 변환하여 리턴하는 클래스

java.util.Scanner 클래스

• Scanner 클래스의 객체 생성

import java.util.Scanner; // import 문을 사용하여야 한다.
...
...
...
Scanner sc = new Scanner(System.in); // Scanner 객체 생성

• Scanner는 입력되는 값을 공백으로 구분되는 단위로 읽는다.
공백 문자 : \t, \r, \n, \r, ' '
• 구현자가 원하는 다양한 타입의 값으로 바꾸어 읽을 수 있다.

Scanner sc = new Scanner(System.in);

int price = sc.nextInt();
double weight = sc.nextDouble();
boolean married = sc.nextBoolean();
String name = sc.next();

Scanner 클래스의 주요 메소드

next( ) : 다음 토큰을 문자열로 리턴
nextByte( ) : 다음 토큰을 byte 타입으로 리턴
nextShort( ) : 다음 토큰을 short 타입으로 리턴
nextInt( ) : 다음 토큰을 int 타입으로 리턴
nextLong( ) : 다음 토큰을 long 타입으로 리턴
nextDouble( ) : 다음 토큰을 double 타입으로 리턴
nextBoolean( ) : 다음 토큰을 boolean 타입으로 리턴
nextLine( ) : '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열을 리턴
close( ) : Scanner 사용 종료
hasNext( ) : 현재 입력된 토큰이 있으면 true, 아니면 토큰이 입력될 때 대기

Scanner 사용 예제

import java.util.Scanner;

public class ScannerExample {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        
        System.out.println("상품명, 무게, 제조사, 반품여부를 빈칸으로 분리하여");
        
        String name = sc.next(); // 문자열을 읽기
        System.out.print("상품명 : " + name+ ", ");
        
        Double weight = sc.nextDouble(); // 실수을 읽기
        System.out.print("무게 : " + weight + "kg, ");
        
        String company = sc.next(); // 문자열을 읽기
        System.out.print("제조사 : " + company + "이며, ");
        
        boolean reItem = sc.nextBoolean(); // 논리값을 읽기
        System.out.println("반품 여부는 " + reItem + "입니다.");
        
        sc.close(); // Scanner의 사용 종료
    }
}

• 실행 결과

상품명, 무게, 제조사, 반품여부를 빈칸으로 분리하여 입력
바나나 24 바나공장 false
상품명 : 바나나, 무게 : 24.0kg, 제조상 : 바나공장이며, 반품 여부는 false입니다.

profile
안녕하세요. 백엔드, 클라우드, 인프라에 관심과 열정이 있는 김문성입니다. 😊

0개의 댓글

관련 채용 정보