기존의 입출력 방식
입력에는 java.util.Scanner를 사용하고,
출력에는 System.out.print를 사용했다.
Scanner
regular expression을 사용해서 primitive type과 String으로 파싱해준다.
delimiter pattern을 사용해서 input을 토큰화시키는데 디폴트는 whitespace다.
BufferedReader
character-input stream으로부터 text를 읽어 character를 버퍼에 저장하기 때문에 효율적인 읽기를 제공한다.기본버퍼사이즈가 8192 char인 것에 반해 Scanner는 1024 char으로 고정되어 있다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String string = br.readLine();
StringTokenizer
BufferedReader는 Scanner와 다르게 토큰화를 지원하지 않기 때문에 토큰화를 위해 사용되는 클래스이다.
Delimiter character를 기준으로 String을 토큰화시키는데 디폴트는 " \t\n\r\f"이다.
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
StringBuilder
StringBuffer와의 차이점은 synchronization을 보장해주지 않는다는 점이다.
그렇기 때문에 single thread일 때 StringBuffer의 대체제로 고안된 클래스이다.
대부분의 구현에서 StringBuffer보다 빠르므로 StringBuilder를 권장한다.
String과는 달리 객체를 재생성하지 않고 수정해서 사용한다.
StringBuilder sb = new StringBuilder("hi");
sb.append(" ").append("test");
System.out.print(sb);
'공부한 거 > Java' 카테고리의 다른 글
| [Java] 향상된 for문 (0) | 2024.02.05 |
|---|---|
| [Java] String.substring (0) | 2023.11.04 |