□ String 클래스는 문자열 처리를 위한 클래스로서 다른 클래스와는 구별되는 성질을 가지고 있는데 그것은 생성된 객체의 내용이 변경되지 않은 immutability(불변성)이다.
□ StringBuffer 클래스는 객체의 내용이 변경될 수 있다.
□ 객체의 선언 및 생성
① String 클래스 : 기본 데이터 형처럼 선언하고 대입하는 방법과 일반적인 객체 생성 방법인 new 연산자를 사용하는 new 연산자에 의한 방식이 있다. 전자의 방법으로 생성된 문자열 중 같은 문자열을 가진 객체가 있을 때는 새로운 객체를 생성하지 않고 기존에 있던 객체를 참조하여 사용. 후자의 경우는 new 연산자에 의한 객체 생성은 객체를 생성할 때 항상 새로운 주소에 객체를 생성
② StringBuffer 클래스 : new 연산자에 의한 객체 생성 한 가지 방식 밖에 없다.
□ 생성된 객체의 비교 : 객체를 비교하기 위해서는 “==”연산자를 이용하거나 equals() 메소드를 사용해야 한다.
□ “==” 연산자는 객체의 주소를 비교하는 연산자로서 비교되는 객체가 같은 주소를 가지고 있다면 true를 리턴하고 그렇지 않다면 false를 리턴 한다.
□ equals() 메소드는 java.lang.Object 클래스에 정의되어 있는 메소드로서 “==”연산자와 마찬가지로 객체의 주소를 비교. 하지만 String 클래스나 Wrapper(랩퍼) 클래스(Integer, Long)에서는 이 메소드를 오버라이드하여 객체의 값을 비교할 수 있도록 하고 있음
□ +연산자의 사용 : String 클래스에서는 사용 가능 하나 StringBuffer클래스에서는 사용할 수 없다.
□ concat() / append() 메소드
① String클래스의 경우 concat()메소드를 사용하는데 인자로 들어온 문자열을 원래 문자열 뒤에 붙여 새로운 문자열을 리턴 한다. 즉 기존에 있던 문자열은 그대로이고 연결된 문자열로 새로운 객체를 만들게 되는 것. 그래서 원래 문자열과 두 개의 문자열을 연결한 문자열은 서로 다른 주소를 가짐
② StringBuffer 클래스의 경우 appaend() 메소드를 사용하는 인자로 들어온 문자열을 원래 문자열 뒤에 연결. 새로운 객체는 생성되지 않고 값이 변경 됨
□ replace() 메소드 : 두 문자열 클래스 모두 사용하고 있는 특정 문자열을 변경하는 기능을 하는 메소드
① String 클래스 : ex) public String replace (char oldchar, char new newchar)
② StringBuffer 클래스 : ex) public StringBuffer replace (int start, int end, String str)
※ 원래 문자열 start부터 end-1까지의 문자를 문자열 str로 대체한다.
○ String 클래스에 자주 사용되는 메소드
메소드명
|
매개변수
|
기 능
|
concat()
|
String str
|
인자로 들어온 문자열 str를 원래 문자열 뒤에 연결한 새로운 문자열을 리턴
|
equals()
|
Object anObject
|
인자로 들어온 anObject와 원래 문자열이 일치하면 true, 일치하지 않으면 false
|
length()
|
-
|
문자열의 길이를 int형으로 리턴
|
replace()
|
char oldchar
char newchar
|
원래 문자열의 문자 oldchar를 문자 newchar로 변경한 새로운 문자열을 리턴
|
substring()
|
int beginIndex
int endIndex
|
원래 문자열에서 beginIndex부터 endIndex-1까지의 문자들로 구성된 새로운 문자열을 리턴
|
toLowerCase()
|
-
|
원래 문자열을 소문자로 바꾼 새로운 문자열 리턴
|
toUpperCase()
|
-
|
원래 문자열을 대문자로 바꾼 새로운 문자열을 리턴
|
trim()
|
-
|
원래 문자열의 앞과 뒤의 공백을 제거한 새로운 문자열을 리턴
|
○ StringBuffer 클래스에서 자주 사용하는 메소드
메소드명
|
매개변수
|
기 능
|
append()
|
String str
|
스트링 버퍼에 문자열을 추가
|
charAt()
|
int index
|
지정된 인덱스의 문자를 반환
|
replace()
|
int start, int end,
String str
|
원래 문자열 start부터 end-1까지의 문자를 문자열 str로 대체
|
reverse()
|
-
|
원래 문자열의 순서를 바꿈
|
substring()
|
int start, int end
|
원래 문자열의 start부터 end-1 까지의문자로 구성된 새로운 문자열을 리턴
|
toString()
|
-
|
StringBuffer 클래스의 데이터를 String 으로 변경
|
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.