Java problem solve를 위한 String과 StringBuilder의 주요 메서드 정리.
package main.java;
import java.util.Arrays;
public class StringBuilderTest {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("By pursuing self-actualization and avoiding self-absorption " +
"you may create something bigger than yourself.");
StringBuilder asb = new StringBuilder();
asb.append("By");
System.out.println("-------StringBuilder, String 공용---------");
System.out.println(sb.charAt(1));
System.out.println(sb.compareTo(asb));
System.out.println(sb.indexOf("create"));
System.out.println(sb.indexOf("create", 100));
System.out.println(sb.lastIndexOf("a"));
System.out.println(sb.length());
System.out.println(sb.substring(3));
System.out.println(sb.substring(0, 30));
System.out.println("-------StringBuilder 전용---------");
System.out.println(sb.delete(0, 30));
System.out.println(sb.deleteCharAt(3));
System.out.println(sb.insert(3, 'd'));
String str = "You may choose to conceal your true self. " +
"And reveal it only with self-consciousness.";
System.out.println("-------String 전용---------");
System.out.println(str.concat("asdf"));
System.out.println(str.contains("Asdf"));
System.out.println(str.endsWith("."));
System.out.println(str.indexOf('A'));
System.out.println(str.replace('Y', 'y'));
Arrays.stream(str.split("\\.")).forEach(v -> System.out.println(v));
System.out.println(str.startsWith("You"));
System.out.println(str.startsWith("may", 4));
System.out.println(str.toCharArray());
System.out.println(str.trim());
}
}
StringBuilder에 최적화 된 작업
- 위치 기반 삽입, 제거
StringBuilder는 못하지만 String으로 할 수 있는 것
- 문자열 합치기, 대체, 분할, 트림 등 거의 대부분의 유틸성 작업
사족) String 쓰면서 +
로 문자열을 붙이는것이 거의 죄악 취급이지만, 그런 소스가 있더라도 컴파일러가 판단하여 StringBuffer에 append로 변경한다. 생각보다 최적화를 잘 함.