차근차근 개발자 되기

Java

10일차: Java 문자열 관련 클래스 - 2021.06.28

wellow 2021. 6. 28. 22:23

목차

1.     문자열 관련 클래스: String

2.     문자열 관련 클래스: StringBuffer

3.     문자열 관련 클래스: StringTokenizer

 

1. 문자열 관련 클래스: String

 

1) String 클래스에서의 메모리 할당 방식                      → ★StringTest00 참고

- new 연산자로 새로운 객체를 생성하게 되면 값이 같더라도 다른 주소를 가진다.

 

2) String 클래스에서의 메모리 할당 방식                      → ★StringTest01 참고

- 값의 변화가 일어날 때마다 heap메모리상에 새로운 공간이 생성됨

- 값에 변화를 주게 되면 새로운 변수로 받아야 출력 가능

 

    

3) String 객체의 “+” 연산 수행                          → ★ConnectString 참고

- 문자열과 문자열을 +연산자로 연산하면 연결이 된다. (ex. 자바파이썬)

- 문자열과 정수형을 +연산자로 연산해도 문자열+정수형으로 연결된다. (ex. 자바8)

 

4) String 클래스의 주요 메소드

① length() 메소드                                           → ★FindBlankIndex 참고

- 문자열의 길이를 구해주는 메소드. 글자수를 구해준다.

 

② indexOf() 메소드                                          → ★IndexOfTest참고

- 특정 문자의 인덱스 번호를 구해주는 역할을 하는 메소드

- indexOf(a) : a의 인덱스 번호를 구해준다.

- indexOf(a, 13) : 인덱스 번호 13 이후의 부터 ‘a’의 인덱스 번호를 구해준다. (2022-02-15 수정)

- 찾는 문자가 없을 경우에는 -1을 리턴한다.

 

③ trim() 메소드                                   → ★TrimTest 참고

- 문자열 좌우의 공백을 없애는 역할을 하는 메소드

 

④ substring() 메소드                             → ★SubStringTest / SubStringEx / JuminCheck 참고

- 전체 문자열에서 특정 범위의 문자를 추출해주는 메소드

- substring(n) : index 번호 n번부터 끝까지 추출

- substring(n1, n2) : index 번호 n1부터 (n2-1)번까지 추출

 

⑤ replace() 메소드                               → ★ReplaceEx 참고

- replace("자바", "JAVA") : "자바" "JAVA"로 치환해주는 메소드

 

2. 문자열 관련 클래스: StringBuffer

 

1) StringBuffer 클래스에서의 메모리 할당 방식                 → ★StringBufferTest 참고

- String 클래스와는 달리, String 객체의 값에 변화가 일어나도 주소값은 변하지 않는다.

- append() 메소드로 문자열을 추가하면 공간의 크기를 동적으로 늘릴 수 있다.

 

2) StringBuffer 클래스의 주요 메소드

① append() 메소드                                          → ★AppendStringBuffer 참고

- 기존의 문자열 뒤에 새로운 문자열을 추가해주는 메소드

 

insert() 메소드                                             → ★InsertStringBuffer 참고

- insert( 10, "very " ) : 인덱스10번 자리에 “very ”를 삽입한다.

 

3. 문자열 관련 클래스: StringTokenizer    

→ ★StringTest04 / StringTokenizerTest1 / StringTokenizerTest2 참고

 

- StringTokenizer 클래스는 java.util 패키지에 포함된 클래스이기 때문에 import 하고 사용해야함

- StringTokenizer("이순신#을지문덕#강감찬#광개토대왕", "#") : 이순신(토큰), #(구분자)

- countTokens() : 파싱된 문자열이 모두 몇 개인지 알려준다.

- hasMoreTokens() : StringTokenizer 클래스 객체에서 토큰이 존재하는지를 확인한다.