목차
- String 클래스
- String 주요 메소드
- 문자열 비교, int compareTo(String anotherString)
- 문자열 연결
- 문자열 내의 공백 제거, String trim()
- 문자열의 각 문자 접근, charAt(int index)
- StringBuffer 클래스
- StringTokenizer 클래스
▶ String 클래스
● String - java.lang.String
- String 클래스는 하나의 스트링만 표현
- 스트링 리터럴은 자바 컴파일러에 의해 모두 String 객체로 처리
● String 생성자
▷ 스트링 리터럴과 new String()
- 스트링 리터럴과 new String()으로 생성된 스트링 객체는 서로 다르게 관리함
● 스트링 생성
- 단순 리터럴로 생성, String s = "Hello"; (JVM이 리터럴 관리, 응용프로그램 내에서 동일한 리터럴은 공유됨)
- String 객체로 생성, String t = String("Hello"); (힙에 String 객체 생성, 힙 메모리에서 공유하지않고 모두 독립적으로 생성)
▷ 스트링 객체는 수정 불가
- 리터럴이든 new String()으로 생성한 스트링 객체는 수정불가
- 한번 만들어진 스트링은 수정이 불가능하기 때문에 (그림1)에서 스트링이 공유되어도 문제발생하지 않음
String a = "처음 문자열";
String b = "처음 문자열";
//a와 b는 자바 가상 기계의 스트링리터럴 테이블에 문자열을 공유하고있음
a = "change"; // a가 변경되어도, b스트링은 처음 문자열 그대로 가지고 있음
● 문자열 s를 변경하려면 다음과 같이 해야함
s = s.concat("Java"); //s는 새로 리턴된 "HelloJava"를 가리킴
● 두 스트링을 비교할 때 반드시 equals()를 사용해야햐 함
- equals()는 내용을 비교하기 때문에
▶ String 주요 메소드
▶ 문자열 비교
● int compareTo(String anotherString)
- 문자열이 같으면 0 리턴
- 이 문자열이 anotherString 보다 사전에 먼저 나오면 음수 리턴
- 이 문자열이 anotherString 보다 사전에 나중에 나오면 양수 리턴
- 비교 연산자 ==는 문자열 비교에는 사용할 수 없음
▶ 문자열 연결
● '+' 연산자로 문자열 연결
- '+' 연산의 피연산자에 문자열이 있는 경우
- '+' 연산에 객체가 포함되어 있는 경우 (객체.toString()을 호출하여 객체를 문자열로 변환한 후 문자열 연결)
- 기본 타입 값은 문자열로 변환된 후에 연결
● String concat(String str)를 이용한 문자열 연결
● concat()은 새로운 문자열을 생성
- 기존 String 객체에 연결되지 않고 새로운 스트링 객체 생성 리턴
▶ 문자열 내의 공백 제거,
● String trim()
- 문자열 앞 뒤 공백 문자(tab,enter,space) 제거한 문자열 리턴
▶ 문자열의 각 문자 접근
● char charAt(int index)
예제) String 클래스 메소드 활용
예제 실행 과정)
▶ StringBuffer 클래스
● java.lang.StringBuffer
- 스트링과 달리 객체 생성 후 스트링 값 변경 가능
- append와 insert 메소드를 통해 스트링 조작
- StringBuffer 객체의 크기는 스트링 길이에 따라 가변적
● 생성자
▶ StringBuffer 클래스 주요 메소드
▷ StringBuffer의 메소드 활용 예
예제) StringBuffer 클래스 메소드 활용
▶ StringTokenizer 클래스
● java.util.StringTokenizer
- 구분 문자를 기분으로 문자열 분리
- 문자열을 구분할 때 사용되는 문자를 구분 문자(delimiter)라고 함
● 토큰(token)
- 구분 문자로 분리된 문자열
- String 클래스의 split() 메소드를 이용하여 동일한 구현 가능
▷ StringTokenizer 생정자
▷ StringTokenizer 주요 메소드
▷ StringTokenizer 객체 생성과 문자열 분리
예제) StringTokenizer 클래스 메소드 활용
'[Java]' 카테고리의 다른 글
[Java] 자바 GUI (3) | 2023.11.09 |
---|---|
[Java] 컬렉션 (2) | 2023.11.03 |
[Java] 자바의 주요 클래스 (0) | 2023.01.04 |
[Java] 패키지, 모듈 (1) | 2023.01.03 |
[Java] 추상 클래스, 인터페이스 (0) | 2023.01.02 |
댓글