티스토리 뷰

수업/└Java

[CH00]Scanner

onlyun 2022. 1. 30. 14:09

 

입출력 스트림

system.in 키보드로부터 직접 읽는 자바의 표준 입력 스트림. 바이트(byte) 리턴
ex)3.14를 3, ., 1, 4로 각각 리턴
scanner System.in에게 키를 읽게 하고,
읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴
입력되는 키 값을 공백으로 구분되는 아이템 단위로 읽음. 공백 : " ", "\n", "\r", "\f", "\t"

 

1. Scanner

입력된 바이트를 문자, 정수, 실수, 불리언, 문자열 등으로 변환하여 리턴

공백 단위로 구분하여 읽어들임.

(*공백 : '\t', '\f', '\r', ' ', '\n')

package ch02;

import java.util.Scanner;  // Scanner를 사용하기 위해 import 필요

public class DataTypeTest{
    public static void main(String[] args){
        Scanner a = new Scanner(System.in);  // 객체 생성
        //
        a.close(); //Scanner 객체 사용 종료
    }
}

 

(1) 주요 메소드

byte nextByte() byte 타입으로 변환하여 리턴
short nextShort() short 타입으로 변환하여 리턴
int nextInt() int 타입으로 변환하여 리턴
long nextLong() long 타입으로 변환하여 리턴
float nextFloat() float 타입으로 변환하여 리턴
double nextDouble() double 타입으로 변환하여 리턴
String next() String(문자열) 타입으로 변환하여 리턴
String nextLine() 공백을 포함하는 한 라인을 읽고 공백을 버린 나머지 리턴
boolean hasNext()  
void close() Scanner 사용 종료

_예제)

package ch02;
import java.util.Scanner; //import해야 Scanner 사용 가능
public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
		
        System.out.println("이름, 주소, 나이, 시력, 반려동물 여부 입력하세요.");
        //입력
        String name = sc.next();		
        sc.nextLine(); // 개행문자 제거. 오류 제거
        String adr = sc.nextLine();	
        int age = sc.nextInt();
        float eye = sc.nextFloat();
        boolean pet = sc.nextBoolean();
		
        //출력
        System.out.println("이름은 "+name);
        System.out.println("주소는 "+adr);
        System.out.println("나이는 "+age);
        System.out.println("시력은 "+eye);
        System.out.println("반려동물 여부는 "+pet);
		
        sc.close();		
    }
}

-nextLine(); 은 'xx시 xx구'처럼 공백을 포함해 입력받을 때 사용 됨.

 

-이름을 입력하고 엔터 등을 침으로써 다음 입력을 위해 넘어옴.

 이때 버퍼에 공백이 남아 있는데, 이 때문에 주소(공백을 포함하는 입력값을 받는)를 입력받을 때 오류가 생긴다.

 때문에 nextLine();을 추가하여 개행문자(공백)을 제거함으로써

 오류없이 주소를 입력받을 수 있도록 한다.

 

 

'수업 > └Java' 카테고리의 다른 글

[CH04_01]제어문 : 조건문  (0) 2022.01.30
[CH03]연산자  (0) 2022.01.30
[CH02]변수와 자료형  (0) 2022.01.30
[CH00]Java 기초  (0) 2022.01.29
[실습문제4]클래스  (0) 2022.01.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함