SSISO Community

시소당

StringBuffer클레스의 메소드 활용 예제


public  class  sample  {
  public  static  void  main(String  []z)  {
    char  ch;
    String  s1,  s2;
    StringBuffer  sb1  =  new  StringBuffer();
    char  charss[]  =  {'a',  'b',  'c',  'd',  'e',  'f'};
    char  ch_ary[]  =  new  char[40];
    
    Mycls  mc  =  new  Mycls();
    
    System.out.println("------------append");
    sb1  =  new  StringBuffer("AAA");
    sb1.append(':');  sb1.append(true);
    sb1.append(':');  sb1.append('J');
    sb1.append(':');  sb1.append(charss);
    sb1.append(':');  sb1.append(charss,  2,  3);
    sb1.append(':');  sb1.append(1234);
    sb1.append(':');  sb1.append(123456789L);
    sb1.append(':');  sb1.append(111.222F);
    sb1.append(':');  sb1.append(123456.789);
    sb1.append(':');  sb1.append("BBB");
    sb1.append(':');  sb1.append(mc);
    System.out.println("-----------charAt,  setcharAt");
    sb1  =  new  StringBuffer("abcdefg");
    ch  =  sb1.charAt(2);
    System.out.println("ch  =  "  +  ch);
    sb1.setCharAt(3,  'M');
    System.out.println("sb1  =  "  +  sb1);
    
    System.out.println("-----------getchars,  reverse,  toString");
    sb1  =  new  StringBuffer("ABCDEFG");
    sb1.getChars(2,  5,  ch_ary,  0);
    print_charString(ch_ary,  3);
    sb1.reverse();      //문자열  역순으로  한다.
    System.out.println("sb1  =  "  +  sb1);
    System.out.println("sb1.toString=  "  +  sb1.toString());
    
    System.out.println("-----------insert");
    sb1  =  new  StringBuffer("$::::::::#");
    sb1.insert(9,  true);
    sb1.insert(8,  'J');
    sb1.insert(7,  charss);
    sb1.insert(6,  charss,  2,  3);
    sb1.insert(5,  1234);
    sb1.insert(4,  123456789L);
    sb1.insert(3,  111.222F);
    sb1.insert(2,  12345.6789);
    sb1.insert(1,  "BBB");
    sb1.insert(0,  mc);
    System.out.println(sb1);
    
    System.out.println("-----------delete,deletecharAt");
    sb1  =  new  StringBuffer("0123456789");
    System.out.println("sb1  =  ["  +  sb1  +  "]");
    sb1.delete(5,  8);    //위치  5-7  삭제
    System.out.println("sb1  =  ["  +  sb1  +  "]");
    sb1.deleteCharAt(2);
    System.out.println("sb1  =  ["  +  sb1  +  "]");
    
    System.out.println("-----------replace");
    sb1  =  new  StringBuffer("abcdefghij");
    System.out.println("sb1  =  ["  +  sb1  +  "]");
    sb1.replace(5,  8,  "Java");        //위치  5-7  java로  치환
    System.out.println("sb1  =  ["  +  sb1  +  "]");
    
    System.out.println("-----------substring");
    sb1  =  new  StringBuffer("abcdefghij");
    s1  =  sb1.substring(3);
    s2  =  sb1.substring(3,  6);      //위치  3-5  의문자열
    System.out.println("sb1  =  ["  +  sb1  +  "]");
    System.out.println("s1  =  ["  +  s1  +  "]");
    System.out.println("s2  =  ["  +  s2  +  "]");
    
    System.out.println("-----------setLength(10),  length");
    sb1  =  new  StringBuffer("abcdefghijkim");
    System.out.println("내용  :  sb1  =  ["  +  sb1  +  "]");
    System.out.println("길이  :  sb1  =  "  +  sb1.length());
    sb1.setLength(10);    //문자열  길이  10
    System.out.println("내용  :  sb1  =  ["  +  sb1  +  "]");
    System.out.println("길이  :  sb1  =  "  +  sb1.length());
    
    System.out.println("-----------ensureCapacity,  Capacity");
    System.out.println("내용  :  현재의  수치  =  "  +  sb1.capacity());  
    sb1.ensureCapacity(20);      //버퍼용량을  20으로
    System.out.println("내용  :  20수치  =  "  +  sb1.capacity());
    sb1.ensureCapacity(31);    
    System.out.println("내용  :  31수치  =  "  +  sb1.capacity());    //현재용량보다  크므로  '현재용량x2+2'
    
    System.out.println("-----------indexOf,lastIndexof");
    sb1  =  new  StringBuffer("AbcdeAbcde");
    System.out.println("내용  :  sb1  =  ["  +  sb1  +  "]");
    System.out.println("제일  좌측  c의  위치  :  "  +  sb1.indexOf("c"));
    System.out.println("제일  우측  c의  위치  :  "  +  sb1.lastIndexOf("c"));
  }
  public  static  void  print_charString(char  ss[],  int  n)  {
    for  (int  i=0;  i<n;  i++)
      System.out.print(ss[i]);
    System.out.println();
  }
}
class  Mycls  {
  public  int  dt  =  0;
}
  
StringBuffer  클레스는  멀티스레드  처리라도  동기가  확보  되지만  그대신,  처리가  무겁게  된다.
이러한  이유때문에  싱클스레드만에서의  이용이  제한된  (동기확보x)  비교적  고속으로  실행  할수있는  이점을  지닌  StringBuilder  클레스가  나왔다.

[출처]  StringBuffer클레스의  메소드  활용  예제|작성자  낮달
http://blog.naver.com/kny0619?Redirect=Log&logNo=70024395078

1754 view

4.0 stars