오늘은 자바에서 사용자에게 값을 입력받을 때 사용하는 Scanner에 대해 공부해보도록 하겠습니다.
Scanner는 자바의 '클래스' 중 하나로
Scanner 변수명 = new Scanner(System.in);
과 같은 형태로 사용을 합니다.
클래스이기 때문에 Scanner를 사용하려면
import java.util.Scanner;
를 임포트 해줘야만 사용이 가능합니다.
그다음으로는 간단한 코드를 하나 작성해서 살펴보겠습니다.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력해주세요 : ");
int a = sc.nextInt();
System.out.println("a의 값은 : " + a);
sc.close();
}
}
우선 System.in은 키보드의 입력값을 읽고 원하는 타입으로 변환시켜서 리턴해줍니다.
sc.nextInt( )는 Scanner가 객체이기 때문에 sc.000으로 Scanner의 메서드를 사용 가능하게 해 주는데 nextInt( )의 경우 int타입으로 리턴 시켜줍니다.
**스캐너의 주요 메서드는 아래와 같습니다.
next( ) | 다음 토큰을 문자열로 리턴한다. |
nextByte( ) | 다음 토큰을 byte 타입으로 리턴한다. |
nextShort( ) | 다음 토큰을 short 타입으로 리턴한다. |
nextInt( ) | 다음 토큰을 int 타입으로 리턴한다. |
nextLong( ) | 다음 토큰을 long 타입으로 리턴한다. |
nextFloat( ) | 다음 토큰을 float 타입으로 리턴한다. |
nextDouble( ) | 다음 토큰을 double 타입으로 리턴한다. |
nextLine( ) | 공백을 포함하는 한 라인을 읽고 공백을 버린 나머지만 리턴 |
sc.close( )는 사용했던 Scanner의 사용을 종료시켜주는 역할을 합니다.
close( )의 경우 없다고 에러가 나진 않지만 그래도 닫아주는 것을 습관화해주시는 게 좋습니다.
** next와 nextLine의 차이점
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("문자1 입력해주세요 : ");
String a = sc.next();
System.out.println("문자2 입력해주세요 : ");
String s = sc.nextLine();
System.out.println("a의 값은 : " + a);
System.out.println("s의 값은 : " + s);
}
}
aaa를 하고 바로 Enter를 할 경우
aaa (공백) bbb를 할 경우
'Java > JAVA' 카테고리의 다른 글
[JAVA] String pool (0) | 2021.09.18 |
---|---|
[JAVA] 자바의 메소드(Method) (0) | 2021.09.17 |
[JAVA] 자바의 반복문 (0) | 2021.09.13 |
[JAVA] 자바의 조건문 (2) | 2021.09.12 |
[JAVA] 자바 기본 (0) | 2021.09.09 |