프로그래머스 문자열 여러번 뒤집기 풀고 다른 사람들의 코드를 살펴보면,
java에서 문자열 뒤집기는 크게 3가지 유형이 있다.
물론 세부적으로 살펴보면 크게 포인터를 1개사용하였는가 2개사용하였는가 였다.
그중 java에서 java.lang에 포함된 StringBuffer와 StringBuilder는 기본적인 문자열을 다를 수 있도록 제공되는데 이 class들은 어떻게 문자열을 뒤집는지 궁금해졌다.
방법1. (내가사용한 방법) 문자열 배열(char[])를 stack을 활용해 뒤집었다.
방법2. 2포인터를 사용해서 주어진 시작과 끝을 서로 바꾸며 한칸식 이동하며, 포인터가 만나면 종료된다.
방법3. StrignBuilder나 StringBuffer에서 제공하는 revers()를 호출한다.
public AbstractStringBuilder reverse() {
byte[] val = this.value;
int count = this.count;
int n = count - 1;
if (isLatin1()) {
for (int j = (n-1) >> 1; j >= 0; j--) {
int k = n - j;
byte cj = val[j];
val[j] = val[k];
val[k] = cj;
}
} else {
StringUTF16.reverse(val, count);
}
return this;
}