[카테고리:] <span>Java 입문</span>

StringBuffer 클래스이 append 멤버 메서드는 문자열 끝에 특정 값을 추가할 때 사용합니다.

StringBuffer append(boolean value)
StringBuffer append(char value)
StringBuffer append(char[] sarr)
StringBuffer append(char[] sarr, int offset, int len)
StringBuffer append(double value)
StringBuffer append(float value)
StringBuffer append(int value)
StringBuffer append(long value)
StringBuffer append(Object value)
StringBuffer append(String value)
StringBuffer append(StringBuffer value) 

StringBuffer의 append 메서드는 반환하는 형식 개체가 원본 개체와 같습니다. String 클래스의 문자열 변경에 관한 메서드에서는 원본 개체의 문자 집합을 변경할 수 없기 때문에 새로운 개체를 생성하여 반환하였지만 StringBuffer에서는 원본 개체의 문자 집합을 변경한 후에 자기 자신을 반환합니다. 다음의 결과를 확인해 보면 s1과 origin이 같은 개체를 참조한다는 것을 확인할 수 있습니다.

StringBuffer origin = new StringBuffer("abc");
StringBuffer s1 = origin.append(true);
System.out.println(s1);
if(s1 == origin){
	System.out.println("같은 개체 참조");
}
else{
	System.out.println("다른 개체 참조");
}

이러한 차이가 String 클래스와 StringBuffer 클래스의 가장 큰 차이점입니다.

다음은 StringBuffer 클래스의 append 멤버 메서드를 사용하는 예제입니다.

//StringBuffer의 append 멤버 메서드 사용 예
public class Program {
	public static void main(String[] args){
		StringBuffer origin = new StringBuffer("abc");
		
		StringBuffer s1 = origin.append(true);
		System.out.println(s1);
		if(s1 == origin){
			System.out.println("같은 개체 참조");
		}
		else{
			System.out.println("다른 개체 참조");
		}
		
		origin.append('a');
		System.out.println(origin);
		
		char[] sarr = {'d','e','f','g','h'};
		origin.append(sarr);
		System.out.println(origin);
		
		origin.append(sarr,2,2);
		System.out.println(origin);
				
		origin.append(3.14);
		System.out.println(origin);
		
		origin.append(3.14f);
		System.out.println(origin);
		
		origin.append(3);
		System.out.println(origin);
		
		origin.append(3l);
		System.out.println(origin);
		
		origin.append("Yahoo");
		System.out.println(origin);
	}
}

실행 결과

abctrue
서로 같다.
abctruea
abctrueadefgh
abctrueadefghfg
abctrueadefghfg3.14
abctrueadefghfg3.143.14
abctrueadefghfg3.143.143
abctrueadefghfg3.143.1433
abctrueadefghfg3.143.1433Yahoo

Java 입문