String str1 = "ab";
str1 += "c";
위 예제코드에서 str1에는 무슨 문자열이 들어 가있을까?
간단하다. str1과 "c"가 합쳐진 "abc"가 들어가 있을거다.
위처럼 간단한 방법을 이용하여서 문자열끼리 더하거나 빼서 새로운 문자열을 생성할 수 있다.
허나, 위 방법은 단점을 지니고 있다.
String은 위같은 방법으로 연산을 진행하면 새로운 String 객체가 리턴될것이다. 다시금 말해, 메모리의 재할당이 이루어질 것이다. 이러한 문제는 위 예제처럼 크기가 작은 프로그램에서는 문제가 되지 않는다. 허나, 프로그램이 커질 수록 메모리의 낭비가 심해질 것이다.
위 문제를 해결하기 위해 JAVA에는 StringBuilder 클래스가 있다.
StringBuilder 클래스는 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용한다. 따라서, 속도도 빠르며 성능적으로 더 낫다.
생성자
StringBuilder sb = new StringBuilder();
StringBuilder sb = new StringBuilder("abc");
위처럼 객체선언만 할 수도 있고, 문자열을 바로 포함한 객체를 선언할 수도 있다.
주요 메소드
sb.append() : 문자열을 맨 끝에 더한다.
sb.insert(int offset, String str) : offset 위치에 str을 추가한다.
sb.replace(): 첫번째와 두번째 파라미터로 받는 index에 위치한 문자열을 대체한다.
sb.substring(int start,(int end)): 인덱싱, 파라미터가 하나라면 해당 index부터 끝까지, 두개라면 start부터 end-1까지 문자열을 잘라낸다.
sb.deleteCharAt(int index): index에 위치한 문자 하나를 삭제한다.
sb.toString(): String으로 변환한다.
sb.reverse(): 해당 문자 전체의 순서를 뒤집는다.
sb.setCharAt(int index, String s): index 위치의 문자를 s로 변경한다.
sb.setLength(int len): 문자열 길이 조정, 현재 문자열보다 길게 조정하면 공백으로 채워지고 짧게 조정하면 나머지 문자는 삭제된다.
sb.trimToSize(): 문자열이 저장된 char[] 배열 사이즈를 현재 문자열 길이와 동일하게 조정해준다. 배열의 남는 사이즈는 공백이므로, 문자열 뒷부분의 공백을 모두 제거해주는 것이다.
'Language > JAVA' 카테고리의 다른 글
[JAVA] 이진트리에서 BFS 구현하기 (0) | 2022.09.01 |
---|---|
[JAVA] 이진트리에서 DFS 구현하기 (0) | 2022.09.01 |
[JAVA]Set 의 개념,종류 및 사용법 (0) | 2022.08.21 |
[JAVA] HashMap의 개념 및 사용법 (0) | 2022.08.17 |