본문 바로가기
Back_end/JAVA

JAVA - 기본 API(java.util.Scanner)

by hyeon1016 2024. 9. 27.

Scanner

 

입력을 도와주는 클래스.

문자, 숫자를 콘솔로 입력하고 그 데이터를 가져올 수 있다.

 

생성방법

Scanner sc = new Scanner(System.in);

 

 

메서드

메서드 의미
nextInt() 콘솔에 정수를 입력하여 그 데이터를 가져올 때
nextLine() 콘솔에 문자열을 입력하여 그 데이터를 가져올 때
nextBoolean() 콘솔에 true/false 입력해 그 데이터를 가져올 때
nextFloat() 콘솔에 실수를 입력하여 그 데이터를 가져올 때

 

사용예시

Scanner sc = new Scanner(System.in);
System.out.print("Y혹은 N을 입력해주세요.");
String input = sc.nextLine();

if(input.equals("Y")) {
	System.out.print("Y를 입력하셨습니다.");
} else if(input.equals("N")) {
	System.out.print("N을 입력하셨습니다.");
} else {
	System.out.print("올바른 값을 입력하세요.");
}

 

1. Scanner 클래스를 객체 생성한다. 참조변수 sc

2. "Y"혹은 "N"을 입력하라는 문구를 println()를 통해 콘솔에 출력한다.

3. 콘솔에 입력한 문자열을 nextLine()으로 읽어와 String타입의 input변수에 저장한다. (문자열이 아니라면 오류 발생)

4. if조건문을 사용해 입력한 값을 확인한다. 참조 변수에는 대입 연산자를 사용하지 못하기 때문에 equals()를 통해 비교한다.

 

if 조건문

if-1. input의 값이 "Y"와 일치하면 "Y를 입력하셨습니다."를 출력,

if-2. input의 값이 "N"와 일치하면 "N를 입력하셨습니다."를 출력,

if-3. input의 값이 둘 다 일치하지 않다면 "올바른 값을 입력하세요."를 출력한다.

 

 

응용

FileInputStream fis = null;

try {
    fis = new FileInputStream("src\\sample.txt");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

Scanner sc = new Scanner(fis);

while(sc.hasNext()) {
    System.out.println(sc.nextLine());
}

 

1. FileInputStream 선언 및 초기화, 참조변수 fis, 값, null

2. FileInputStream클래스를 객체 생성하여 참조변수 fis에 할당, 파라미터로 sample.txt의 상대경로 입력

3. 2번 구문을 try-catch로 예외처리

4. Scanner 객체 생성, 참조변수 sc, 파라미터로 fis변수

5. while문

 

5-1. hasNext()로 sample.txt파일에 다음 줄이 존재한다면 반복

5-2. sc.nextLine()을 사용해 한 줄씩 출력(호출될 때마다 다음 줄 출력)

5-3. 다시 5-1로 

'Back_end > JAVA' 카테고리의 다른 글

JAVA - 기본 API(Timer/TimerTask)  (0) 2024.09.27
JAVA - 기본 API(BigDecimal, Wrapper)  (0) 2024.09.27
JAVA - 기본 API(java.util.Random)  (0) 2024.09.27
JAVA - 기본 API(Date, Calendar)  (1) 2024.09.27
JAVA - 기본 API(문자열 클래스)  (1) 2024.09.26