BufferedReader는 코드가 복잡해보여서 안쓰고 있었는데 백준에서 자꾸 런타임에러가 나서 외우려고 정리한다
효율적인 입출력을 위한 클래스
내부적으로 데이터를 버퍼에 임시로 저장해두고 효율적으로 읽어오기 때문에 Scanner보다 훨씬 입출력 속도가 빠르다.
import java.io.*;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//한 줄 읽기
String str = br.readLine();
//사용 후 닫기
br.close();
문자열만 읽을 수 있어서 숫자가 필요하면 입력받은 후 형변환 해야한다.
문자열을 구분자를 기준으로 토큰으로 분리한다. 구분자는 " " 공백이 기본이다.
import java.util.*;
String str = "1 2 3";
StringTokenizer st = new StringTokenizer(str);
while(st.hasMoreTokens()) {
String token = st.nextToken();
}
문자열을 변경 가능한 형태로 다루기 위한 클래스
한 번 생성되면 변경할 수 없어서 문자열에 작업을 할 때마다 새로운 문자열을 생성하는 String과 달리 StringBuilder는 가변클래스여서 메모리를 효율적으로 사용할 수 있다.
StringBuilder sb = new StringBuilder();
sb.append("hello");
sb.insert(5, " world");
sb.delete(5, 11);
System.out.println(sb.toString());