스캐너(Scanner) 클래스

문제를 풀면서 자주 사용했는데, String값을 입력받을 때 nextLine을 써야할지 next를 써야할지 등등 헷갈리는 경우가 많아서 정리해두고자 한다.

스캐너는 java.util 패키지에서 제공하는 클래스다.

사용 방법

Scanner scanner = new Scanner(System.in); // Scanner 타입의 변수 scanner 를 선언하고, 시스템의 입력장치로부터 읽는 Scanner를 생성한다.
String input = scanner.nextLint(); //String타입으로 입력받을거라 nextLine을 사용했다.

System.in

콘솔에서 키보드의 데이터를 입력받을 수 있도록 하는 System 클래스의 in 정적 필드.

in -> 키보드 입력을 가리킨다.

스캐너(Scanner) 종류

대소문자를 꼭 맞춰서 써줘야한다

nextint -> X   
nextInt -> O

String 타입

  • next()
    띄어쓰기를 문자열의 끝으로 인식한다.

  • nextLine()
    띄어쓰기를 문자열에 포함시켜주고, 엔터를 쳐야 문자열의 끝으로 인식한다.

Int 타입

  • nextInt()

byte 타입

  • nextByte()

short 타입

  • nextShort()

long 타입

  • nextLong()

float 타입

  • nextFloat()

double 타입

  • nextDouble()

boolean 타입

  • nextBoolean()

BigDecimal타입

  • nextBigDecimal()

BigInteger타입

  • nextBigInteger()

char타입

char타입은 따로 입력받는 방법이 없다. 그래서 String타입으로 입력받은 후 char타입으로 변환해주어야한다.

charAt()

charAt은 string을 char타입으로 변환해주는 메소드다.

(괄호)안에는 출력할 문자열의 index번호를 입력하면 된다.

String이라는 단어에서 S 를 출력하고싶다면 charAt(0)을 입력해주면 된다.

Scanner sc = new Scanner(System.in);

char c = sc.next().charAt(0);
sc.close();

System.out.println(c);

Scanner의 끝에는 sc.close();

현재는 단순하게 콘솔을 통해 입력받는 예시들을 많이 들었고 그런부분만 공부했는데, 나중에는 파일등을 통해 입력을 받는 경우도 있다고 한다. 그럴경우엔 꼭 사용해주어야 에러가 나지 않는다.
지금과같이 키보드로 입력을 받는경우에는 별 상관 없다고 하지만, 습관을 미리 들여주는게 좋다고 생각한다.

Scanner sc = new Scanner(System.in);

String str = sc.next();
sc.close();

태그: ,

카테고리:

업데이트: