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()
->토큰을 순서대로 반환
- public int countTokens()
kimdevel.tistory.com/63?category=909475
반응형
'개발 > 자바' 카테고리의 다른 글
[JPA] sort 각기 다른 order주기 (0) | 2021.10.31 |
---|---|
자바 Wrapper 클래스 / 박싱(Boxing), 언박싱(Unboxing) / 오토박싱, 오토언박싱 / 문자열 파싱(parse) (0) | 2021.02.02 |
자바 API - Object 클래스 // toString, equals, hashCode, clone, finalize (0) | 2021.01.28 |
자바 추상클래스, 추상메소드 / 인터페이스 (0) | 2021.01.27 |
자바 상속, Inheritance / 오버라이딩, Overriding / super / final / 다형성 / for each 구문 (0) | 2021.01.25 |
댓글