반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- javascript
- 자바
- 배열
- 이클립스
- input
- Eclipse
- Java
- json
- ArrayList
- list
- string
- HashMap
- date
- html
- Array
- table
- CMD
- js
- Button
- 인텔리제이
- Visual Studio Code
- 문자열
- map
- vscode
- IntelliJ
- replace
- CSS
- 자바스크립트
- 이탈리아
- 정규식
Archives
- Today
- Total
어제 오늘 내일
[Java Scanner] 주요 메소드 정리와 활용 예제 본문
Java에서 사용자 입력이나 파일 입력을 처리할 때 가장 많이 사용하는 클래스 중 하나가 Scanner
입니다. 이 클래스는 공백, 줄바꿈, 또는 지정된 구분자 기준으로 데이터를 손쉽게 읽을 수 있게 해줍니다. 이번 글에서는 Scanner
클래스의 주요 메소드와 활용법을 예제와 함께 정리해보겠습니다.
1. next()
- 공백 전까지 문자열 입력
import java.util.Scanner;
public class ScannerNextExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력: ");
String name = sc.next(); // 공백 전까지만 읽음
System.out.println("입력된 이름: " + name);
}
}
사용자가 "Hong Gil Dong"
을 입력하면 "Hong"
까지만 읽습니다. 공백 이후는 다음 입력으로 남습니다.
2. nextLine()
- 한 줄 전체 입력
import java.util.Scanner;
public class ScannerNextLineExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("주소 입력: ");
String address = sc.nextLine(); // 한 줄 전체 읽음
System.out.println("입력된 주소: " + address);
}
}
공백을 포함한 한 줄 전체를 읽을 수 있습니다.
3. nextInt()
, nextDouble()
- 숫자 입력
import java.util.Scanner;
public class ScannerNumberExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("나이 입력: ");
int age = sc.nextInt();
System.out.print("키 입력: ");
double height = sc.nextDouble();
System.out.println("나이: " + age + ", 키: " + height);
}
}
입력값을 바로 정수나 실수로 변환해줍니다. 다만 잘못된 형식(예: "abc"
) 입력 시 예외(InputMismatchException
)가 발생합니다.
4. useDelimiter(String regex)
- 구분자 변경
import java.util.Scanner;
public class ScannerDelimiterExample {
public static void main(String[] args) {
String input = "apple|banana|orange";
Scanner sc = new Scanner(input);
sc.useDelimiter("\\|"); // 파이프(|) 기준으로 분리
while (sc.hasNext()) {
System.out.println(sc.next());
}
}
}
출력 결과:
apple
banana
orange
기본 구분자는 공백이지만, useDelimiter()
를 사용하면 원하는 정규표현식을 기준으로 데이터 분리 가능.
5. hasNext()
, hasNextInt()
- 입력 여부 확인
import java.util.Scanner;
public class ScannerHasNextExample {
public static void main(String[] args) {
String input = "100 200 end";
Scanner sc = new Scanner(input);
while (sc.hasNextInt()) {
System.out.println("숫자: " + sc.nextInt());
}
if (sc.hasNext()) {
System.out.println("남은 데이터: " + sc.next());
}
}
}
출력 결과:
숫자: 100
숫자: 200
남은 데이터: end
입력 데이터가 있는지, 정수인지 여부를 미리 확인할 수 있어 안전한 입력 처리가 가능합니다.
6. 활용 사례
- 콘솔 기반 사용자 입력 처리 (예: 간단한 메뉴 시스템)
- 파일 데이터 파싱 (CSV, 로그 파일 등)
- 데이터 검증 및 변환 (정수, 실수, 문자열 혼합 입력 처리)
정리
Scanner
클래스는 간단한 사용자 입력부터 파일 데이터 처리까지 폭넓게 활용됩니다. next()
, nextLine()
, nextInt()
와 같은 메소드들을 상황에 맞게 조합하면 다양한 입력을 효과적으로 처리할 수 있습니다.
반응형
'IT > Java' 카테고리의 다른 글
[Java StringTokenizer] 주요 메소드 정리와 활용 예제 (0) | 2025.10.06 |
---|---|
[Java Matcher] replaceAll() - 정규식으로 문자열 치환하기 (0) | 2025.10.05 |
[Java Matcher] group() - 매칭된 문자열 추출하기 (0) | 2025.10.05 |
[Java Matcher] find() - 문자열에서 패턴 찾기 (0) | 2025.10.04 |
[Java Matcher] matches() - 문자열 전체가 패턴과 일치하는지 확인하기 (0) | 2025.10.04 |
Comments