System.in
- 키보드로부터 직접 읽는 자바의 표준 입력 스트림
- 키 값을 바이트(문자 아님)로 리턴
***System.in을 사용할 때 문제점?
- 키 값을 바이트 데이터로 넘겨주므로 응용 프로그램이 문자 정보를 변환해야 한다.
Scanner 클래스
- System.in에게 키를 읽게 하고, 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴
- Scanner는 개발자가 원하는 다양한 타입의 값으로 바꾸어 읽을 수 있음
***java.util.Scanner 클래스 객체 생성
import java.util.Scanner; //import문 필요
...
Scanner a = new Scanner(System.in); //Scaner객체 생성
Scanner 클래스 메소드
메소드 | 설명 |
String next() | 다음 토큰을 문자열로 리턴 |
byte nextByte() | 다음 토큰을 byte 타입으로 리턴 |
short nextShort() | 다음 토큰을 short 타입으로 리턴 |
int nextInt(0 | 다음 토큰을 int 타입으로 리턴 |
long nextLong() | 다음 토큰을 long 타입으로 리턴 |
float nextFloat() | 다음 토큰을 float 타입으로 리턴 |
double nextDouble() | 다음 토큰을 double 타입으로 리턴 |
boolean nextBoolean() | 다음 토큰을 Boolean 타입으로 리턴 |
String nextLine() | '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열을 리턴 |
void close() | Scanner의 사용 종료 |
boolean hasNext() | 현재 입력된 토큰이 있으면 true. 아니면 입력때까지 무한정 대기, 새로운 입력이 들어올 때 true 리턴, ctrl-z키가 입력되면 입력 끝으로 false 리턴 |
Scanner 클래스 예제(1) - 초단위 계산하기
package testt;
import java.util.Scanner;
public class blogTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//Scanner 클래스 변수 선언 및 초기화. 입력값을 받아오는 스캐너기능을 사용할 수 있다
System.out.print("정수를 입력하세요 : ");
//Scanner.nextInt(); -> Scanner클래스를 직접 호출X, Scanner 역할을 하는 sc 변수를 이용해야 함
int time = sc.nextInt();
//Scanner기능 변수 값을 입력받아 정수형 변수 time에 대입. 정수형이기 때문에 nextInt() 사용
int second = time % 60;
//% =나머지연산자 -> 입력받아 대입된 time 값을 60으로 나눈 나머지 값을 second에 대입
int minute = (time / 60) % 60;
//입력받아 대입된 time 값으로 분단위 계산 수식을 하여 minute값에 대입
int hour = (time / 60) / 60;
//입력받아 대입된 time 값으로 시간단위 계산 수식을 하여 hour값에 대입
System.out.print(time + "초는 ");
System.out.print(hour + "시간 ");
System.out.print(minute + "분 ");
System.out.print(second + "초입니다."); //내용 출력
//Sanner.close(); //Scanner 역할을 하는 sc를 사용했으니 sc로 닫아야함
sc.close(); //Scanner 사용 후 닫아주는게 원칙
}
}
Scanner 클래스 예제(2) - 합격 불합격 계산하기
package testt;
import java.util.Scanner;
public class blogTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//Scanner 클래스 변수 선언 및 초기화. 입력값을 받는 scanner 생성
System.out.print("점수를 입력하시오 : ");
int score = scanner.nextInt();
//정수형 변수 score 생성. 정수값을 입력받는 scanner 변수 입력값 대입
if(score >= 80) { //score가 80보다 크거나 같으면 if 실행문 실행.
System.out.println("축하합니다! 합격입니다.");
}
else { //score가 80보다 크거나 같지 않으면 else문 실행.
System.out.println("불합격입니다. 다음기회에 다시 지원바랍니다.");
}
scanner.close(); //스캐너 사용 후 닫아주기
}
}
'JAVA' 카테고리의 다른 글
JAVA 변수 fianl 상수 (0) | 2022.02.08 |
---|---|
JAVA 변수/자동형변환/강제형변환/캐스팅/프로모션 (0) | 2022.02.06 |
JAVA 반복문 - for문, while문, do~while문 (0) | 2022.02.04 |
JAVA 조건문 - if문, switch문 (0) | 2022.02.03 |
JAVA란 무엇인가? (0) | 2022.02.02 |
댓글