728x90
Class Scanner
Constructor | Description |
Scanner(InputStream source) | 특정 입력 스트림에서 스캔한 값을 생성하는 새 스캐너 생성 |
Scanner(File source) | 특정 파일에서 스캔한 값을 생성하는 새 스캐너 생성 |
Scanner(Path source) | 특정 파일에서 스캔한 값을 생성하는 새 스캐너 생성 |
Modifier and Type | Method | Description |
String | next() | 다음 토큰을 반환 ( 기본적으로 공백 문자 ‘ ’ 를 기준으로 삼음 ) |
String | nextLine() | 현재 줄을 지나 다음 토큰 반환 ( 개행문자 '\n' 를 기준으로 삼음 - 스캔 시에는 개행 문자 포함, 반환 시 개행 문자 전까지 ) |
int ( or long, short, double, float, ... ) |
nextInt() ( or Long, Short, Double, Float, ... ) |
다음 토큰을 int로 스캔 후 반환 |
boolean | hasNext() | 다음 토큰이 있으면 true 반환 |
boolean | hasNext(String pattern) | 다음 토큰이 지정한 패턴과 일치하면 true 반환 |
void | close() | 이 스캐너를 닫음 |
( https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html )
Class PrintStream
Modifier and Type | Method | Description |
void | print(String x) ( or Object, int, long, char, double, float, booelan, ... ) |
문자열 출력 |
void | println(String x) ( or Object, int, long, char, double, float, booelan, ... ) |
문자열 출력하고 현재 행 종료 |
void | println() | 현재 행 종료 (줄 구분자 문자열 작성) |
PrintStream | printf(String format, Object... args) | 지정한 형식의 문자열 출력 |
( https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html )
▶ 입력받은 토큰 값이 0 이면 종료
Scanner sc = new Scanner(System.in);
int n;
// [way 1]
while (true) {
n = sc.nextInt();
if (n == 0) break;
...
}
// [way 2]
while ((n = sc.nextInt()) != 0) {
...
}
// [way 3]
while (!sc.hasNext("0")) {
n = sc.nextInt();
...
}
sc.close();
▶ 입력받은 토큰 값이 없으면 종료
Scanner sc = new Scanner(System.in);
int n;
// [way 1]
while (true) {
try {
n = sc.nextInt();
...
}
catch (Exception e) {
break;
}
}
// [way 2] -- EOF ( = End of File )
while (sc.hasNext()) {
n = sc.nextInt();
...
}
sc.close();
▶ 숫자 입력 받은 후 문자열 입력 받기
Scanner sc = new Scanner(System.in);
int n; String s;
/* 입력값 */
// 25
// 김배추
/**********/
// => 25\n김배추\n
// [way 1]
n = sc.nextInt(); // 25
s = sc.next(); // "김배추"
// [way 2]
n = sc.nextInt(); // 25
sc.nextLine(); // "\n" -> ""
s = sc.nextLine(); // "김배추\n" -> "김배추"
// [way 3]
n = Integer.valueOf(sc.nextLine()); // "25\n" -> 25
s = sc.nextLine(); // "김배추\n" -> "김배추"
System.out.println(n + "\n" + s);
sc.close();
반응형