잉?

[프로그래머스] 문자열 뒤집기 + StringBuffer 사용법, 사용이유 본문

알고리즘_Algorism/프로그래머스

[프로그래머스] 문자열 뒤집기 + StringBuffer 사용법, 사용이유

Jye_647 2023. 5. 30. 10:30
class Solution {
    public String solution(String my_string) { 
    // String자료형을 return해주는 solution이라는 메서드에 my_string 매개변수를 가진다.
        
        StringBuffer sb = new StringBuffer(my_string); 
        // StringBuffer 객체를 만들고 그 안에 my_string의 값을 넣어준다.
        
        String value = sb.reverse().toString(); 
        // String자료형을 가진 value변수에 = sb에 저장된 my_string값을.toString()을 이용해 문자열로 리턴해준다.
        
        return value;
        // 문자열로 저장된 value값을 리턴
    }
}

이번 문제를 통해 StringBuffer의 개념을 알게 되었다.

 

StringBuffer란?

StringBuffer는 buffer라고 하는 독립적인 공간을 가지는데 주로 문자열을 추가하거나 변경할 때 사용한다.

append를 통해 buffer안에 값을 추가할 수 있다.

sb.append("추가할 값");

 

 

StringBuffer 사용이유?

String을 이용하여 문자열을 추가할 경우

String value = "";  // String 객체 생성(1)
value += "Welcome"; // +연산자로 인해 String 객체 생성(2)
value += " to the "; // +연산자로 인해 String 객체 생성(3)
value += "StringBuffer"; // +연산자로 인해 String 객체 생성(4)
System.out.println(value); // "Welcome to the StringBuffer"

+연산자를 사용할 때마다 새로운 String 객체가 생성된다. 총 4번 String 객체가 생성되었다.

 

StringBuffer를 이용하면 객체가 한 번만 생성된다.

StringBuffer sb = new StringBuffer(); // StringBuffer 객체 생성(1)
sb.append("Welcome");
sb.append(" to the ");
sb.append("StringBuffer");
String value = sb.toString();
System.out.println(value); // "Welcome to the StringBuffer"

StringBuffer를 사용하는 이유는 공간의 낭비가 없고, 속도 또한 빨라진다.

 


참고

http://www.tcpschool.com/java/java_api_stringBuffer

https://wikidocs.net/276#append

Comments