[Java] Scanner
카테고리: Java
태그: coding Programming Java
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 메소드들은 입력한 내용을 버퍼로부터 토큰단위로 분리해서 읽어온다 그래서 크게 두가지 사항을 주의해야 한다.
- next()로 문자열 입력을 받은 후 정수, 실수, 논리값을 받을 때
- 정수, 실수, 논리값 입력 후 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 = 안 녕
댓글 남기기