StringBuilder는 말 그대로 String을 만드는 객체이며, StringBuilder로 변경한 다음 append()나 insert()등의 기능을 처리할 수 있으며, java.lang.StringBuilder 에 소속되어 있다.
먼저 StringBuilder의 객체를 생성한 후, append()의 인자로 연결하고자 하는 문자열을 넣어서 StringBuilder의 객체를 통해 호출한다. 그리고 출력 시에는 toString()을 붙여야 하고, String 변수에 넣을 때도 마찬가지다.
public class Main
{
public static void main(String[] args)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("문자열 ").append("연결");
// String str = stringBuilder;
// String에 StringBuilder를 그대로 넣을 순 없다. toString()을 붙여야 한다
String str = stringBuilder.toString();
// 두 println()은 같은 값을 출력한다
System.out.println(stringBuilder);
System.out.println(str);
}
}
// 결과 stringBuilder : 문자열 연결
// str : 문자열 연결
StringBuilder를 선언한 후, 각 append()에 맞는 데이터타입을 모두 받아서 합쳐서 출력해 준다.
문자열 연산 "안녕" + "하세요" = "안녕하세요"의 상위버전 느낌이다.
반복문에서 StringBuilder를 사용한다면 아래와 같이 사용할 수 있다.
public class Main
{
public static void main(String[] args)
{
StringBuilder stringBuilder = new StringBuilder();
ArrayList<String> list = new ArrayList<>();
list.add("첫 번째, ");
list.add("두 번째, ");
list.add("세 번째, ");
list.add("네 번째, ");
list.add("다섯 번째");
for (int i = 0; i < list.size(); i++)
{
stringBuilder.append(list.get(i));
}
System.out.println(stringBuilder);
}
}
StringBuilder, StringBuffer의 주요 메소드
- append(값)
- StringBuilder, StringBuffer 뒤에 값을 붙인다.
- insert(인덱스, 값)
특정 인덱스부터 값을 삽입한다.- delete(인덱스, 인덱스)
특정 인게스부터 인덱스까지 값을 삭제한다.- indexOf(값)
값이 어느 인덱스에 들어있는지 확인한다.- substring(인덱스, 인덱스)
인덱스부터 인덱스까지 값을 잘라온다.- length()
길이를 확인한다.- replace(인덱스, 인덱스, 값)
인덱스부터 인덱스까지 값으로 변경한다.- reverse()
글자 순서를 뒤집는다.