class Solution {
public String solution(String my_string, String overwrite_string, int s) {
StringBuilder sb = new StringBuilder(my_string);
sb.replace(s, s + overwrite_string.length(), overwrite_string);
return sb.toString();
}
}
String은 불변객체이다. String 객체는 한번 생성되면 변경할 수 없으므로, +를 사용해서 문자를 연결하면 연결할 때마다 새로운 문자열 객체가 생성된다. 또한 이전에 있던 문자열은 JVM의 GC가 처리하게 된다.
String의 길이는 .length()로 구할 수 있다
StringBuilder는 String과 다르게 값이 변할 수 있다.
StringBuilder은 문자열을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용하기 때문에 속도가 빠르고 상대적으로 부하가 적다.
sb.replace(int index1, int index2, String str);
StringBuilder의 replace를 사용한다면, StringBuilder에서 인자로 받은 문자열에서 index1과, index2까지의 위치한 문자열을 str로 대체한다