[JAVA] StringBuffer

고민정·2024년 4월 5일

JAVA

목록 보기
22/32


🎇 StringBuffer

string buffer 가 가지고 있는 메서드들은 대부분 자기 자신을 반환한다.

method Chaining
자기자신을 리턴하여 계속해서 자신의 메소드를 호출하는 방식

아래 코드를 참고해보자.

public class StringBufferExam {
    public static void main(String[] args) {
        StringBuffer sb2 = new StringBuffer();
        StringBuffer sb3 =  sb2.append("Hi");

        if(sb2==sb3){
            System.out.println("True");
        }
        else {
            System.out.println("False");
        }    
    }
}

sb3 에서 sb2.append( ) 가 끝난 이후에 자기자신 즉, sb2 를 반환했을 것이다. (method Chaining)

그러므로 if 문의 결과로는 True 가 나와야 맞다.
실제로 작동해보면 True 가 나온다.

이로써 StringBuffer 는 자기 자신을 반환함을 알 수 있다.


자기 자신을 반환 가능하다는 말은 아래 코드도 가능하다는 소리이다.

public class StringBufferExam {
    public static void main(String[] args) {
        StringBuffer sb4 = new StringBuffer();
        String str2 = sb4.append("Hello").append(" ").append("World").toString();
        System.out.println(str2);
    }
}

append( ) 다음 또 자기 자신을 반환하기 때문에 다시 append 를 쓸 수 있다.

원래라면 아래 처럼 썼어야 했는데 더욱 간편하게 쓸 수 있다.

public class StringBufferExam {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        sb.append(" ");
        sb.append("world");

        String str1 = sb.toString();
        System.out.println(str1);
    }
}

E.g.

public class StringBufferExam {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        sb.append(" ");
        sb.append("world");

        String str1 = sb.toString();
        System.out.println(str1);

        StringBuffer sb2 = new StringBuffer();
        StringBuffer sb3 =  sb2.append("Hi");

        if(sb2==sb3){
            System.out.println("True");
        }
        else {
            System.out.println("False");
        }

        StringBuffer sb4 = new StringBuffer();
        String str2 = sb4.append("Hello").append(" ").append("World").toString();
        System.out.println(str2);
    }
}

0개의 댓글