[Java] Scanner

Date:     Updated:

카테고리:

태그:

java.png

Scanner란?

Scanner 클래스는 키보드나 파일과 같은 입력 소스에서 다양한 종류의 데이터를 읽을 수 있는 유용한 도구다. 사용자로부터 텍스트나 숫자와 같은 입력을 받을 때 사용된다.

java.util.Scanner 을 이용한 다양한 자료형 값 입력 받기

Scanner 객체 선언

  • 원래 이렇게 Scanner 객체를 만들어야한다
java.util.Scanner sc = new java.util.Scanner(java.lang.System.in);  //java.lang은 생략 가능

다른 클래스에 클래스 사용 시 패키지명 생략하기 위해 사용하는구문 사용(import)

Scanner sc = new Scanner(System.in);

자료형 값 입력 받기

문자열 입력받기

  • nextLine() : 입력 받은 값을 문자열로 반환해줌
System.out.print("이름을 입력해주세요 : ");
String name = sc.nextLine();
System.out.println("입력하신 이름은 " + name + "입니다.");

정수값 입력

  • nextIne() : 입력받은 값은 int 형으로 반환한다
System.out.print("나이를 입력하세요 : ");
int age = sc.nextInt();
System.out.println("입력하신 나이는 " + age + "입니다.");

실수값 입력받기

  • nextDouble() : 입력받은 값을 double 로 변환
System.out.print("원하는 실수를 입력해주세요 : ");
double num = sc.nextDouble();
System.out.println("입력하신 실수는 " + num + "입니다.");

논리형 값 입력 받기

System.out.print("참과 거짓의 한가지를 true or false로 입력해주세요 : ");
boolean isTrue = sc.nextBoolean();
System.out.println("입력하신 논리값은  " + isTrue + "입니다. ");

문자형 값 입력 받기

  • charArt(int index)를 사용한다
sc.nextLine();
System.out.print("아무 문자나 입력해주세요 : ");
char ch = sc.nextLine().charAt(0); //컴퓨터는 숫자를 0부터 시작하니 첫번째 글자를 알아본다는 뜻
System.out.println("입력하신 문자는 " + ch + "입니다. ");
  • 출력값
이름을 입력해주세요 : 아무개 //질문에 답을 입력하면 아래의 구문이 출력되고 다음 질문으로 넘어간다
입력하신 이름은 아무개입니다.
나이를 입력하세요 : 28
입력하신 나이는 28입니다.
원하는 실수를 입력해주세요 : 30
입력하신 실수는 30.0입니다.
참과 거짓의 한가지를 true or false로 입력해주세요 : true
입력하신 논리값은  true입니다. 
아무 문자나 입력해주세요 : 
입력하신 문자는 ㅁ입니다. 

하나씩 출력이 되고 입력을 하면 다음단계로 넘어간다

Scanner의 nextLine()과 next에 대해 구분하여 사용할 수 있다

  • nextLine() : 공백을 포함한 한 줄 입력을 위한 개행문자 전까지 읽어서 문자열로 반환한다(공백문자 포함)
  • next() : 공백 문자나 개행문자 전까지를 읽어서 문자열로 변환한다(공백문자 포함하지 않음)

Scanner 객체 생성

Scanner sc = new Scanner(System.in);

문자열 입력

  • nextLine()
System.out.print("인삿말을 입력해주세요 : ");
String greeting1 = sc.nextLine();
System.out.println(greeting1);

System.out.print("인삿말을 입력해주세요 : ");
String greeting2 = sc.next();
System.out.println(greeting2);
  • 출력값
인삿말을 입력해주세요 : 안녕하세요
안녕하세요
인삿말을 입력해주세요 : 반갑습니다
반갑습니다
  • 스캐너 사용 시 주의사항에 대해 이해하고 사용시 주의사항을 고려하여 사용할 수 있다

-스캐너의 next 메소드들은 입력한 내용을 버퍼로부터 토큰단위로 분리해서 읽어온다 그래서 크게 두가지 사항을 주의해야 한다.

  1. next()로 문자열 입력을 받은 후 정수, 실수, 논리값을 받을 때
  2. 정수, 실수, 논리값 입력 후 next()로 문자열을 받을 때

스캐너 객체 생성

Scanner se = new Scanner(System.in);

next()로 문자열 입력을 받은 후 정수, 실수, 논리값을 받을 때 ~~~java System.out.print(“문자열을 입력해주세요 : “); String str1 = sc.next(); System.out.println(“str1 = “ + str1);

System.out.print(“숫자를 입력해주세요 : “); int num1 = sc.nextInt(); System.out.println(“num1 = “ + num1);


> 정수, 실수, 논리값 입력 후 nextLine()로 문자열을 받을 때

~~~java
System.out.print("다시 숫자를 입력해주세요 : ");
int num2 = sc.nextInt();
System.out.println("num2 = " + num2);

System.out.print("공백이 있는 문자열을 하나 입력해주세요 : ");

sc.nextLine();

String str2 = sc.nextLine();
System.out.println("str2 = " +str2);
  • 출력값
문자열을 입력해주세요 : 안녕하세요
str1 = 안녕하세요
숫자를 입력해주세요 : 32
num1 = 32
다시 숫자를 입력해주세요 : 12
num2 = 12
공백이 있는 문자열을 하나 입력해주세요 : 안 녕
str2 = 안 녕

요약. Scanner는 Java에서 표준 입력스트림에서 다양한 유형의 데이터를 읽어오는 유용한 클래스이다. 사용자 입력을 받거나 파일에서 데이터를 읽을 때 자주 활용된다

Java 카테고리 내 다른 글 보러가기

댓글 남기기