JAVA
[JAVA][09] Scanner 클래스
vbsic5
2024. 11. 17. 18:43
Scanner 클래스
java.util 패키지에서 제공하는 Scanner 클래스를 이용하여 화면에서 입력받을 수 있다.
자바를 공부하면서 프로그램 입력처리할 때 가장 많이 사용한다.
1. import
아래와 같이 import 선언
import java.util.Scanner;
2. 객체 생성
// 키보드 입력
Scanner scanner = new Scanner(System.in);
// 파일 입력
Scanner scanner = new Scanner(new File("파일경로"));
// 문자열 입력
Scanner scanner = new Scanner("입력 문자열");
3. 주요 메소드
next()
공백을 기준으로 하나의 문자열을 읽음
공백을 기준으로 한 번에 입력 가능하다.
import java.util.Scanner;
public class J101_Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("데이터를 입력 : ");
String a = sc.next();
String b = sc.next();
String c = sc.next();
System.out.println(a);
System.out.println(b);
System.out.println(c);
sc.close();
}
}
실행결과
데이터를 입력 >
a b c
a
b
c
nextLine()
한 줄을 읽음(공백도 포함)
import java.util.Scanner;
public class J101_Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("데이터를 입력 > ");
String a = sc.nextLine();
System.out.println("데이터를 입력 > ");
String b = sc.nextLine();
System.out.println("데이터를 입력 > ");
String c = sc.nextLine();
System.out.println(a);
System.out.println(b);
System.out.println(c);
sc.close();
}
}
실행결과
데이터를 입력 >
a b c
데이터를 입력 >
x y z
데이터를 입력 >
1 2 3
a b c
x y z
1 2 3
자주 사용하는 타입별 메소드
필요한 입력값에 맞춰서 아래의 메소드를 사용
- nextByte()
- nextInt()
- nextFloat()
- nextDouble()
hasNext()
입력에 데이터가 남아 있는지 확인
hasNextInt()
다음 입력값이 정수인지 확인
import java.util.Scanner;
public class J101_Scanner_has {
public static void main(String[] args) {
String data = "1 q 2 w 3 e 4 r";
Scanner sc = new Scanner(data);
while (sc.hasNext()) {
if (sc.hasNextInt()) {
System.out.println("숫자: " + sc.nextInt());
} else {
System.out.println("문자열: " + sc.next());
}
}
sc.close();
}
}
숫자: 1
문자열: q
숫자: 2
문자열: w
숫자: 3
문자열: e
숫자: 4
문자열: r
형변환 필요할 때
next와, nextLine 메소드는 문자이기 때문에 숫자를 입력 받으면 형변환이 필요하다
nextInt를 사용하지 않고 정수 값이 필요할 때는 형변환을 한다.
// string -> Integer
String a = sc.next();
System.out.println(Integer.parseInt(a));
// Integer -> String
int b = sc.nextInt();
System.out.println(String.valueOf(b));
변환 방향 | 사용 방법 | 메서드/기법 |
---|---|---|
문자 → 정수 |
Character.getNumericValue() ,
Integer.parseInt()
|
단일 문자 또는 문자열 처리 |
정수 → 문자 | 캐스팅 (char) ,
Character.forDigit()
|
ASCII 활용 또는 변환 함수 |
문자열 → 정수 | Integer.parseInt() |
문자열 전체 처리 |
정수 → 문자열 | String.valueOf() , Integer.toString() |
문자열 변환 함수 |
반응형