본문 바로가기
Backend/JAVA_Basic

14. JAVA, 문자열 관련 클래스(String, StringBuffer, StringBuilder, StringTokenizer)

by 개발개발빈이 2022. 6. 2.

○ 문자열 관련 클래스

    - String, StringBuffer, StringBuilder
    - StringTokenizer : 문자열 분리

 

String vs StringBuffer vs StringBuilder

    ① String

String s1="";
System.out.println(s1.length());    //0

s1=s1+"ONE";
System.out.println(s1+s1.length()); //ONE3

//모든 문자열 지우기(빈 문자열 대입)
s1="";
System.out.println(s1+s1.length()); //0

 

    ② StringBuffer

        - 문자열 길이 : length()

        - 문자열로 변환 : toString()

        - 문자열 추가 : append("추가할 문자열")

        - 문자열 삭제 : delete(시작인덱스, 끝인덱스+1)

StringBuffer s2=null;
s2 = new StringBuffer();  //메모리할당

s2.append("JEJU");
System.out.println(s2.toString()+s2.length());  //JEJU4

s2.append("BUSAN");
System.out.println(s2.toString()+s2.length());  //JEJUBUSAN9

//모든 글자 지우기
s2.delete(0, s2.length());  //인덱스0부터 8(9-1)까지 지우기
System.out.println(s2.length());  //0

 

    ③ StringBuilder

        - 문자열 길이 : length()

        - 문자열로 변환 : toString()

        - 문자열 추가 : append("추가할 문자열")

        - 문자열 삭제 : delete(시작인덱스, 끝인덱스+1)

StringBuilder s3 = new StringBuilder();

s3.append("SEUOL");
System.out.println(s3.toString()+s3.length());  //SEUOL5

s3.append("JEJU");
System.out.println(s3.toString()+s3.length());  //SEUOLJEJU9

//모든 글자 지우기
s3.delete(0, s3.length());  //인덱스0부터 8(9-1)까지 지우기
System.out.println(s3.length());  //0

 

○ StringTokenizer

    - 문자열 분리

    - 입력데이터에 일정한 규칙이 있어야 Token할 수 있다 / e.g. CSV파일 (참고 : CSV파일)

StringTokenizer st = new StringTokenizer("Gone,With,The,Wind", ",");
while(st.hasMoreTokens()) { //토큰할 문자가 있는지?
    System.out.println(st.nextToken()); //토큰할 문자열 가져오기
}

/*
    출력결과
    Gone
    With
    The
    Wind

*/

 

댓글