Java StringBuffer Class


java StringBuffer Class 는 변경가능한 스트링을 작성하는데에 사용됩니다. 

StringBuffer Class 는 변경가능하다는 것을 제외하면 String class 와 동일합니다. 



Note : JAVA StringBuffer Class는 스레드로부터 안전(thread-safe)합니다. 

다시말하면 다중 스레드들은 동시에 접속 할 수 없습니다. 그러므로 안전하고, 순서대로 작업이 이루어질 수 있습니다.






StringBuffer Class 생성자의 중요성



1. StringBuffer() : 16의 초기용량으로 빈 스트링 버퍼를 작성합니다. 

2. StringBuffer(String str): 지정된 스트링으로 스트링 버퍼를 작성합니다.

3. StringBuffer(int capacity): 길이로 지정된 용량으로 빈 스트링 버퍼를 작성합니다. 







StringBuffer Class 메소드의 중요성


1public synchronized StringBuffer append(String s): 지정된 문자열과 다른 문자열을 덧붙이는 데 사용합니다. 

append() 메소드는 append(char), append(boolean), append(int), append(float), append(double) 처럼 과부화 받게 됩니다.


2public synchronized StringBuffer insert(int offset, String s): 지정된 위치에 특정 문자열을 가진 지정된 문자열을 삽입하는 데 사용합니다. 

insert() method는 insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) 처럼 과부화 받게 됩니다. 


3public synchronized StringBuffer replace(int startIndex, int endIndex, String str): 지정된 StartIndex와 endIndex로 부터 문자열을 재배치 하는데 사용합니다. 


4public synchronized StringBuffer delete(int startIndex, int endIndex): 지정된 StartIndex와 endIndex로 부터 문자열을 삭제하는데 사용합니다.


5. public synchronized StringBuffer reverse(): 문자열을 반대로 바꾸는데 사용합니다.


6. public int capacity(): 현재 용량을 반환하는데 사용합니다.


7. public void ensureCapacity(int minimumCapacity): 적어도 주어진 최소한 만큼 동일한 용량을 보장하는데 사용합니다.


8. public char charAt(int index): 지정된 위치에 특성을을 반환하는데 사용합니다.


9. public int length(): 문자열의 길이를 반환하는 데 사용합니다. 


10. public String substring(int beginIndex): 지정된 beginIndex로부터 부분 문자열(substring)을 반환하는데 사용합니다.


11. public String substring(int beginIndex, int endIndex): 지정된 beginIndex 와 endIndex 로부터 부분 문자열을 반환하는데 사용합니다. 







가변(변할 수 있는) String이 무엇인가?


수정되거나 변화될 수 있는 string (문자열)이 가변 문자열(mutable string)이라 알려져 있습니다. 

StringBuffer 와 StringBuilder 클래스들은 가변 문자열을 작성하기 위해 사용합니다.





1) StringBuffer append() method


append() 메소드는 주어진 인수(argument)와 문자열을 연결한다



class A{

     public static void main(String args[]){

          StringBuffer sb=new StringBuffer("Hello ");

          sb.append("Java"); //원래 스트링이 바뀐다.

          System.out.println(sb); // Hello Java를 출력한다.

     }

}







2) StringBuffer insert() method


insert() 메소드는 주어진 문자열과 문자열 사이 주어진 위치에 문자열을 삽입한다.



class A{

     public static void main(String args[]){

          StringBuffer sb=new StringBuffer("Hello ");

          sb.insert(1,"Java"); //원래 스트링이 바뀐다.

          System.out.println(sb); // HJavaello 를 출력한다.

     }

}







3) StringBuffer replace() method


replace() 메소드는 지정된 beginIndex와 endIndex로부터 주어진 스트링을 재배치 시킵니다. 



class A{

      public static void main(String args[]){

           StringBuffer sb=new StringBuffer("Hello");

           sb.replace(1,3,"Java");

           System.out.println(sb); // HJavalo 를 출력한다.

      }

}


 






4) StringBuffer delete() method


StringBuffer class의 delete() 메소드는 주어진 beginIndex 에서 endIndex 까지 문자열을 삭제합니다. 



class A{

      public static void main(String args[]){

            StringBuffer sb=new StringBuffer("Hello");

            sb.delete(1,3);

            System.out.println(sb); // Hlo 를 출력한다. 

       }

}


 






5) StringBuffer reverse() method


StringBuffer class의 reverse() 메소드는 현재 문자열을 반전시킵니다.



class A{

     public static void main(String args[]){

          StringBuffer sb=new StringBuffer("Hello");

          sb.reverse();

          System.out.println(sb); // olleH 를 출력한다.

     }

}






6) StringBuffer capacity() method



StringBuffer class의 capacity() 메소드는 현재 buffer의 용량을 반환합니다. buffer의 용량 는 16입니다. 

만약 현재 용량으로부터 특성의 수가 증가한다면, (oldcapacity x 2)+2 에 의해 용량이 증가합니다.

예를 들어 당신의 현재 용량이 16이라면,  (16 x 2)+2는 34가 될 것입니다.



class A{

     public static void main(String args[]){

         StringBuffer sb=new StringBuffer();

         System.out.println(sb.capacity()); //default 16

         sb.append("Hello");

         System.out.println(sb.capacity()); //now 16

         sb.append("java is my favourite language");

         System.out.println(sb.capacity()); //now (16*2)+2=34 다시말하면 (oldcapacity*2)+2

     }

}


 






7) StringBuffer ensureCapacity() method



StringBuffer class의 ensureCapacity() 메소드는 현재 용량까지 주어진 용량은 최저상태로 보장합니다. 

만약 현재 용량보다 더 크다면,  (oldcapacity x 2)+2라는 수식에 의해 용량은 증가합니다. 

예를 들어 당신의 현재 용량이 16이라면, (16x2)+2= 34가 될 것입니다. 




class A{

      public static void main(String args[]){

          StringBuffer sb=new StringBuffer();

          System.out.println(sb.capacity()); //default 16

          sb.append("Hello");

          System.out.println(sb.capacity()); //now 16

          sb.append("java is my favourite language");

          System.out.println(sb.capacity()); //now (16*2)+2=34 i.e (oldcapacity*2)+2

          sb.ensureCapacity(10); //now no change

          System.out.println(sb.capacity()); //now 34

          sb.ensureCapacity(50); //now (34*2)+2

          System.out.println(sb.capacity()); //now 70

      }

}


 










으쌰으쌰 공부공부









영어원문내용출처 : http://www.javatpoint.com

번역,의역 및 작성 : 초코토끼

검수 : 번역토끼

오역 및 오타의 지적은 겸손히 받겠습니다.



+ Recent posts