Scanner는 정규식 표현을 이용한 라인단위의 검색을 지원하며 구분자(delimiter)에도 정규식 표현을 사용할 수 있어서 복잡한 형태의 구분자도 처리가 가능하다.
Scanner useDelimiter(Pattern pattern)
Scanner useDelimiter(String pattern)
[스캐너 예제] 자바의 정석 Chapter 09 - ScannerEx3.java
import java.util.Scanner;
import java.io.File;
class ScannerEx3 {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(new File("data3.txt"));
int cnt = 0;
int totalSum = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
Scanner sc2 = new Scanner(line).useDelimiter(",");
int sum = 0;
while(sc2.hasNextInt()) {
sum += sc2.nextInt();
}
System.out.println(line + ", sum = "+ sum);
totalSum += sum;
cnt++;
}
System.out.println("Line: " + cnt + ", Total: " + totalSum);
}
}
실행결과
[ 주의사항 ]
입출력에 사용 할 파일을 프로젝트의 최상위 경로에 위치 시켜야한다.