표준 입출력
- System.in
- System.out
- System.err
- System.setOut()
- System.setErr()
- System.setIn()
java.util.Scanner
- 파일, 입력, 스트림등에서 데이터를 읽어 구분자로 토큰화하고 다양한 타임으로 형변환하여 리턴해주는 클래스
- Scanner(File source)
- Scanner(InputStream source)
- Scanner(String source)
- 입력 스트림을 다루는 방법을 몰라도 손쉽게 입력처리가능
- 데이터 형변환으로 인한 편리함
- 대량의 데이터 처리 시 수행시간이 비효율적임.
메소드 명 | 특징 |
---|---|
nextInt() | int 타입으로 반환 White space를 만나면 종료 (space, tab, new Line) |
nextDouble() | double 타입 반환 White space를 만나면 종료 |
next() | 문자열을 반환 White space를 만나면 종료 |
nextLine() | 문자열 반환 개행(Enter)를 만나면 종료 next()와 달리 문자열 안에 띄어쓰기를 할 수 있음. (공백을 포함함) |
package io.scanner;
import java.util.Scanner;
public class IO_ScannerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("정수, 실수, 문자열을 차례로 입력하세요.");
System.out.println(sc.nextInt());
System.out.println(sc.nextDouble());
// System.out.println(sc.next());
System.out.println(sc.nextLine());
}
}
java.io.BufferedReader
- 필터 스트림 유형
- 줄(line) 단위로 문자열 처리 기능 제공 ::: readLine()
- 대량의 데이터 처리시 수행시간이 효율적임.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class IO_BufferedReader {
public static void main(String[] args) throws Exception {
//System.in : byte단위로 읽어드린다.
//BufferedReader : char단위로 읽어드린다.
//InputStreamReader : 읽어드리는 단위가 다르므로 byte단위를 모아서 char단위로 바꿔주는 역할을 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// readLine() : char단위로 읽어드린것을 Line단위로 읽어드림.
String a = br.readLine();
System.out.println(a);
// toCharArray() : 읽어드린 내용을 char배열로 바로 바꾸어 저장
// charAt () : charAt(0) 읽어드린 String의 0 index 값을 읽어드릴지 고를 수 있음.
char[] ch = br.readLine().toCharArray();
for (char c : ch) {
System.out.println(c);
}
//StringTokenizer : 토큰화를 하고 싶은 문자열을 날려서 구분자 단위로 나눔.
StringTokenizer st = new StringTokenizer(br.readLine()," ");
//nextToken() : 읽어드린 토큰화된 String을 하나 반환.
//Integer.parseInt : 읽어드린 String 토큰을 정수형으로 바꾸어 반환.
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
System.out.print(i+"//"+j);
}
}
java.lang.StringBuilder
- 문자열 조작을 지원하는 클래스
- 자바에서 상수로 취급되는 문자열을 조작 시마다 새로운 문자열이 생성되는 것을 방지해줌.
- append() : 문자열 합치기(뒤에 계속 붙임)
- toString() : append한 값을 출력시킴 1번에
package io.stringBuilder;
public class IO_stringBuilder {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append("World").append("!!");
System.out.println(sb.toString()); // Hello World!!
// setLength : 총 입력된 길이를 조정할때 사용
// sb.length() -2 : 전체 길이에서 뒤에서 2개를 삭제하고 sb길이를 재조정.
sb.setLength(sb.length()-2);
System.out.println(sb.toString()); // Hello World
}
}
'CS > JAVA' 카테고리의 다른 글
Call by value와 Call by reference, 비슷한 이름이지만 전혀 다른 두 친구 (0) | 2021.03.20 |
---|---|
JAVA Compile 과정, 이 일대기를 들어보자 (0) | 2021.03.20 |
Java Virtual Machine 이 친구의 이야기를 들어보자. (0) | 2021.03.19 |
HashMap, 이 친구의 이야기 공식문서로 알아보자 [Java 11] (0) | 2021.03.09 |
오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2021.03.07 |