백준 코테를 준비하다가 문자열에 관련된 문제들을 많이 만나게 되었는데
System.out.println() 으로 출력을 해왔던 녀석들이 시간과 메모리를 많이 잡아먹는다고 합니다.(for문을 이용한 출력)
따라서 StringBuilder 를 사용하여 한번에 쌓아놓고 출력을 하는것이 효율적이라는것을 알게되어
기록용으로 포스팅을 진행하였습니다.
StringBuilder
- java.io.BufferedReader 클래스
- 모두 String 으로 읽기때문에 별도의 처리 필요 (parseInt 등등)
- Buffer를 이용하기 때문에 Scanner 에 비해 속도가 빠름
- IOException 처리
메소드 | 내용 |
append() | 문자열 끝에 주어진 매개값을 추가 |
insert(int offset,...) | 문자열 중간에 주어진 매개값을 추가 |
delete(int start, int end) | 문자열의 일부분을 삭제 |
deleteCharAt(int index) | 문자열에서 주어진 index의 문자를 삭제 |
replace(int Start, int End, String str) | 문자열의 일부분을 다른 문자열로 대치 |
reverse() | 문자열의 순서를 뒤바꿈 |
setCharAt(int index, char ch) | 문자열에서 주어진 index의 문자를 다른 문자로 대치 |
StringTokenizer
- BufferdReader 를 통해 들어온 데이트는 Line 단위로 나누어짐
- 이를 공백단위로 가공하기위해 사용
- 구분자에 의해 구분되는 덩어리를 Token 이라고 함
StringTokenizer st = new StringTokenizer("문자열", "구분자");
리턴타입 | 메소드 | 내용 |
int | countTokens() | 꺼내지않고 남은 토큰수 |
boolean | hasMoreTokens() | 남아있는 토큰이 있는지 여부 |
String | nextToken() | 토큰을 하나씩 꺼내옴 |
반응형
'개발 > Algorithm' 카테고리의 다른 글
백준 문제풀이 계획 (0) | 2022.07.07 |
---|
댓글