StringBuilder.delete(startIndex, endIndex + 1)
- 부분 문자열을 삭제하는 메소드다.
- startIndex를 포함하며, endIndex를 포함하지않기때문에, +1한 인덱스를 넣어준다.
- 여기서 시험삼아서 돌려봤는데, endIndex는 문자열 길이를 초과해도, 에러를 발생시키지않는다. 이미 끝부분이 문자열의 length()까지로 저장되어있는거같다.
import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
static int R, C;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "1234567";
for (int i = 0; i < str.length(); i++) {
sb.append(str.charAt(i));
}
sb.delete(6, 100000);
System.out.println(sb);
bw.flush();
bw.close();
br.close();
}
}
- 결과
+추가
- 그래서 혹시 상위메소드에 단서가있을까봐, 타고올라가봤다.
- StringBuilder는 AbstractStringBuilder를 상속받는것같다.
- AbstractStringBuilder의 delete메소드는 위와같이 구현되어있는데,
endIndex가 길이보다 클경우 이를 길이로 맞춰주고있다. 따라서 따로 신경쓸필요가 없었다.