String, StringBuilder 주요 메서드

🗓️

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로 변경한다. 생각보다 최적화를 잘 함.