본문 바로가기
👋국비 후기 모음👋 (이력도 확인 가능!)
개발/자바

자바 String 클래스 / StringBuffer, StringBuilder / split()메소드 / StringTokenizer 클래스

by 킴뎁 2021. 2. 2.
728x90
반응형

String 클래스

  • 패키지 : java.lang
  • 문자열을 표현하는 클래스
  • 문자열의 데이터타입으로 사용된다
  • 문자열을 다루는 기능(메소드)을 포함하고 있다
  • ** 문자열 리터럴 상수도 String 클래스 타입이다.
    "Apple" -> String타입

 

문자열 객체 사용법

  • String 리터럴 상수를 대입하여 사용하기
    -> String str = "Apple";
  • String 객체를 생성하여 사용하기
    -> String str = new String("Banana");

 

String

  • 문자열을 저장할 때마다 새로운 공간을 할당한다
    String str = "Apple";
    str = "Banana";
    str = "Cherry";
    
    -> 세 개의 문자열을 각각 만들고 보관한다
  • 문자열을 수정할 때에도 새로운 공간을 할당한다
    String str = "Pen";
    str += "Pineapple";
    
    -> 기존의 "Pen"
    -> 추가될 "Pineapple"
    -> 합쳐진 "PenPineapple"
  • 단순 문자열을 저장할 때는 좋다
  • 문자열을 수정하면 성능이 좋지 않다

 

StringBuffer, StringBuilder

  • 객체 내부에 문자열을 저장하는 공간을 따로 생성산다
  • 이 공간을 지속적으로 관리한다
  • 공간의 크기(capacity)도 늘리거나 줄어들 수 있다
  • 수정이나 삭제가 빈번한 문자열을 관리하기에 좋다
  • StringBuffer, StringBuilder는 동일한 동작을 한다
  • 메소드들도 다 같은 걸 가지고 있다
  • StringBuffer는 동기화처리 되어있다(Thread-Safe)
    (멀티 스레드에서 사용. 스레드에 안전)
  • StringBuilder는 동기화처리 되어있지 않다
    (단일 스레드 환경에서만 사용할 수 있다)
  • 문자열을 저장하고 수정, 삭제가 없으면 String을 사용하면 된다
  • 문자열을 저장하고 수정, 삭제가 빈번하면 StringBuilder를 사용하면 된다
  • 문자열을 저장하고 수정, 삭제가 빈번하고 멀티스레드 환경이면 StringBuffer를 사용하면 된다

 

문자열 토큰으로 나누기

  • String 클래스의 split() 메소드 이용하기
  • StringTokenizer 클래스 이용하기
  • 토큰
    문자열을 특정 구분자를 이용해서 나누어진 데이터의 각 요소
  • 구분자
    데이터를 구분하기 위해 사용되는 요소
    "Apple Banana Cherry"
    -> 구분자 : " "
    -> 토큰 : "Apple" "Banana" "Cherry"

    "A,B,C"
    -> 구분자 : ","
    -> 토큰 : "A" "B" "C"

 

String 클래스의 split() 메소드

    public String[] split(String regex);
    -> regex를 구분자(dlimiter)로 지정하여 문자열을 토큰화한다
    -> 결과 토큰들이 String[]의 각 요소로 저장되어 반환된다

 

StringTokenizer 클래스

  • 생성자를 이용하여 파싱할 원본 문자열, 구분자 문자열을 지정한다
  • 토큰들은 생성된 객체에 담겨있게 된다
  • 토큰들은 메소드를 통해 관리된다
  • 주요 메소드
    • public int countTokens()
      -> 토큰의 총 개수를 반환
    • public hasMoreTokens()
      -> 다음에 반환할 토큰이 있는지 boolean으로 반환
    • public nextToken()
      ->토큰을 순서대로 반환

kimdevel.tistory.com/63?category=909475

 

자바 국비 17~19일차. 블로그 밀리기 시작하다.

21. 02. 02 (화) 제목 그대로 블로그 쓰기를 안했다.. 나름의 변명을 해보자면 기능사 시험이 일욜이라 그거 준비한답시고 17일차 빼먹고 일욜날 양평 갔다오느라 너무 피곤해서 18일 수업 끝나고 뻗

kimdevel.tistory.com

 

반응형
👋국비 후기 모음👋 (이력도 확인 가능!)

댓글