코딩 테스트 문제를 풀면서 문자열을 더하여 문자를 이를 떄에는 StringBuilder를 사용하는 게 좋다고 합니다.
그래서 기본 메소드들과 코딩 테스트때 사용한 메소드들을 정리해보았습니다.
[ String 클래스와 동일 메소드 ]
charAt()
indexOf() / lastIndexOf()
length()
replace()
substring()
- 특정 인덱스 범위 내 문자열을 복사해서 새로 생성된 인스턴스 반환
toString()
[ append() ]
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb);
[ capacity() ]
String 클래스와 다르게 char[]배열 사이즈를 여유 있게 확보합니다.
- 현재
char[]배열이 가진 사지으 정보를 반환합니다.
length()는 실제 데이터가 들어있는 문자열 자체의 길이이고 capacity()는 현재 배열 사이즈 입니다.
append() 등 문자열 조정할 때 배열 사이즈가 자동으로 변경됩니다.
StringBuilder sb = new StringBuilder("Hello");
System.out.println(sb.length());
System.out.println(sb.capacity());
sb.append(" World");
System.out.println(sb);
System.out.println(sb.length());
System.out.println(sb.capacity());
sb.append(" Hi everybody!!!!");
System.out.println(sb);
System.out.println(sb.length());
System.out.println(sb.capacity());
[ delete() ]
매개변수로 전달받은 인덱스 사이의 문자열을 제거합니다.
매개변수 : 인덱스 시작점, 인덱스 끝점 + 1
- 문자열에서 시작과 끝은 항상
시작 <= 범위 < 끝 형태입니다.
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb);
sb.delete(6, 9);
System.out.println(sb);
[ deleteCharAt() ]
- 특정 인덱스의 한 문자만 삭제합니다.
delete() 메소드에서 범위를 한 글자만 잡는 것과 동일한 효과를 가집니다.
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb);
a.deleteCharAt(sb);
System.out.println(sb);
[ insert() ]
- 특정 위치에 문자열을 삽입합니다.
매개변수로 받은 인덱스 위치부터 문자열을 삽입합니다.
StringBuilder sb = new StringBuilder("He World");
sb.insert(2, "llo");
System.out.println(sb);
sb.insert(5, !!);
System.out.println(sb);
[ setCharAt() ]
- 특정 위치에 문자의 값을 변경합니다.
매개변수로 받은 인덱스 위치에 있는 문자를 매개변수로 받은 문자의 값으로 바꿉니다.
StringBuilder sb = new StringBuilder("Hello World");
sb.setCharAt(0, 'h');
System.out.println(sb);
sb.setCharAt(5, '-');
System.out.println(sb);
좋은 글 감사합니다. 자주 올게요 :)