인코딩의 Decoding

반응형

String 자료형을 선언하고 자주 변경해야 할때 어떤 방법이 좋을까?

--> String을 자주 변경해야한다면 String 자료형 보다는 StringBuffer형을 사용하는 것을 추천한다.

 

Java에서 String을 선언하고 '+'를 사용해서 문자열을 추가해주는 경우가 있다.

예시)

String str = new String();
str = "초기 문장";
str += "추가 문장";
System.out.println(str); // "초기 문장추가 문장"

 StringBuffer에서는 다음과 같이 문장을 추가(수정)할 수 있다.

StringBuffer strBuffer = new StringBuffer();
strBuffer.add("처음 문장");
strBuffer.add("추가 문장");
System.out.println(strBuffer); // "처음 문장추가 문장"

 

같은 효과를 내는 것을 볼 수 있다. 그런데 왜 자주 변경되는 상황에서는 StringBuffer를 추천하는 것일까?

String 자료형은 '+' 될때마다 새로운 객체를 생성해내지만 StringBuffer는 같은 객체가 변경되는 것이기 때문이다.

(String 자료형은 immutable한 객체로 수정이 불가능한 객체로 '+'를 사용할때 마다 새로운 객체를 생성해 낸다.)

 

+

StringBuffer의 또 다른 주요 메소드

 

1. insert(index,data)

index 위치에 data 추가

StringBuffer strBuffer2 = new StringBuffer();
strBuffer2.add('초기문장');
strBuffer2.insert(0,"추가문장");
System.out.println(strBuffer2); // "추가문장초기문장"

2. length()

StringBuffer 자료의 길이를 반환

StringBuffer strBuffer3 = new StringBuffer("초기문장");
int strLength = strBuffer.length();
System.out.println(strLength); // 4

+

자주 사용하지는 않지만 StringBuffer 자료형의 data를 역순으로 추출하기

3. reverse()

StringBuffer strBuffer4 = new StringBuffer("abcd");
System.out.printlne(strBuffer4.reverse()); // "dcba"

 

 

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band