재밌고 어려운 IT를 이해해보자~!
BufferedReader, StringBuilder 본문
JAVA로 알고리즘을 풀기위한 정리!!!
알고리즘 문제를 풀다 보면 메모리나 경과 시간이 중요한 문제들이 있다
Buffer를 사용하기 위해선 여러가지 import 또한 필요하다.
import java.util.* 와 import java.io.*으로 한번에 선언해주자!
.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{ // (1)
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //(2)
String s = bf.readLine();
int i = integer.valueOf(bf.readLine()); //(3)
}
}
1. readLine을 사용하기 위해 예외 처리를 해주어야 한다.
readLine을 사용하는 부분마다 try-catch문을 써주어도 되지만 전체 메서드에 throws IOException을 작성하는 것이 간편하다.
2. BufferedReader 선언 부분이다
3. readLine은 한 줄을 의미한다. 또한 항상 String 형태로 입력을 받아온다. 엔터입력시 입력받기 종료.
따라서 입력을 int 값으로 사용하기 위해선 형 변환이 필요하다. Integer.valueOf or Integer.parseInt
tringTokenizer st = new StringTokenizer(s); // (4)
int a = Integer.parseInt(st.nextToken()); // (5)
int b = Integer.parseInt(st.nextToken());
String array[] = s.split(" "); // (6)
4. 버퍼리더와 항상 같이 나오는 아이이다.
반환된 문장을 공백 기준으로 잘라주는 역할을 한다.
StringTokenizer st = new StringTokenizer(br.readLine());
5. st를 이용하여 잘린 문자열을 int 형으로 형 변환하여 사용하는 것이다.
6. st를 사용하지 않고 String 메서드 split을 사용하여 공백 기준으로 자른 문자 배열을 반환하여 사용할 수도 있다.
StringBuilder sb = new StringBuilder(); // (7)
sb.append("abc") // (8)
sb.append(1).append('\n'); //(9)
System.out.println(sb); // (10)
7. 선언 부분이다. BufferedReader와 달리 import java.util.* 만 있으면 사용 가능하다.
8. 출력하고 싶은 문장을 System.out.println을 이용하여 항상 출력하지 않고 builder에 쌓아둔다
9. 많이 사용되는 형태이다. 한 줄에 줄바꿈 혹은 띄어쓰기도 가능하다. append한개에 몰아쓰는거보다 나누는게 더유리
10. 쌓아둔 문장들을 한 번에 출력한다.
출력을 위한 BufferedWirtter 보다 StringBuilder가 더 빠르다.
'개인공부' 카테고리의 다른 글
프로젝트 관련 궁금증 정리 (0) | 2024.02.22 |
---|---|
Parameter(파라미터) 와 Attribute(속성) 의 차이 (0) | 2024.01.27 |
JSTL practice (0) | 2024.01.26 |
sql 의문점 TEST (2) | 2023.12.31 |
익명 객체(클래스), Comparator, sort (0) | 2023.12.10 |