컴퓨터프로그래밍/JAVA

JAVA - java.lang 패키지2

zelkova 2013. 10. 9. 23:02

 <목차로 돌아가기>


String, StringBuffer, StringBuilder 클래스

문자열 관련 클래스에는 String, STringBuffer와 Java 5.0에서 추가된 StringBuilder가 있다. 이 클래스들은 모두 문자열을 조작할 수 있는 특징을 가지고 있지만 조금씩 다른 특징을 가지고 있으므로 이에 대해서 알아두어야 한다.


String 클래스는 한 번 생성된 객체의 문자열은 변경할 수 없는 불변승ㄹ을 가지며, StringBuffer클래스는 불변성을 가지고 있지 않아 문자열 연결시 좀 더 효율적으로 동작한다. 또한 동기화 처리가 되어 있어 여러 스레드가 동시에 접근ㅇ하더라도 문자열을 안정적으로 다룰 수 있다. 그리고 StringBuilder 클래스는 StringBuffer클래스에서 동기화 처리 기능을 제거한 것으로StringBuffer클래스와 동일한 기능을 가진다. 


String, StringBuffer 클래스 객체 비교

String 클래스

String s1 = "Java";

String s2 = "Java2";

String s3 = new String("java");

String s4 = new String("java2");


 s1 == s2

 true 

 s1 == s3 

 false 

 s3 == s4 

 false 

 s1.equals(s2) 

 true 

 s1.equals(s3) 

 true 

 s3.equals(s4) 

 true 

==연산자는 객체의 주소를 비교한 것입니다.

equals 메소드는 실제 저장된 데이터를 비교한 것입니다.


StringBuffer b1 = new StringBuffer("java");

StringBuffer b2 = new StringBuffer("java2");


 sb1 == sb2

 fasle 

 sb1.equals(sb2) 

 false 

==연산자는 객체의 주소를 비교한 것입니다.

equals 메소드는 실제 저장된 데이터를 비교한 것입니다.


equals()메소드는 java.lang.Object 클래스에 정의되어 잇으며 이 클래스에 정의되어 잇는 equals()메소드는 "=="연산자와 동일한 역활을 수행한다. 하지만 String 클래스와 Wrapper클래스(Integer. Character, Double 등)는 이 메소드를 오버라이딩해서 객체의 값을 비교할 수 있게 되었습니다.



문자열 연결하기

String 클래스는 concat()메소드를 사용해서 문자열을 연결할 수 있으며 StringBuffer클래스는 append()메소드를 사용해서 문자열을 연결할 수 잇습니다.



String 클래스의 문자열 연결

String s1 = "java"

String s2 = s1.concat("fun");



StringBuffer클래스의 문자열 연결

StringBuffer sb1 = new StringBuffer("java");

StringBuffer sb2 = sb1.append("enjoy");



String 클래스의 문자열 치환

다음 코드는 "java"문자열에서 'a'를 'A'로 변경하는 코드다

Stirng s1 = new String("java");

String s2 = s1.replace('a','A');


String 클래스는 불변성을 가지고 있지 않기 때문에 'a'가 'A'로 변경된 문자열을 새로운 객체로 생성된다.


2)StringBuffer클래스의 문자열 치환

StringBuffer 클래스의 replace() 메소드는 메소드는 String 클래스의 replace()메소드와 기능이 약간 다르다. 

StringBuffer sb1 = new StringBuffer("java");

StringBuffer sb2 = sb1.replace(0, 4, "good");


java.lang.String 클래스의 주요 메소드

 StringBuffer

 append(String sss)

기존 문자열에 지정된 문자열 sss을 추가한다. 

 StringBuffer

 insert(int offset, String sss)

지정된 문자열 str을 지정된 offset 위치에 삽입한다. 

 char

 charAt(int index)

기존 문자열에서 지정된 인덱스의 문자를 반환한다. 

 StringBuffer 

 replace(int start, int end, String sss)

 기존 문자열 start부터 end-1까지의 문자열을 문자열 str로 치환한다. 

 StringBuffer

 reverse()

 기존 문자열을 역순으로 변경한다.

 String  

 substring(int start, int end)  

 String 

 toString()

 StringBuffer 객체의 문자열을 String객체의 문자열로 변환해서 반환한다. 



java.lang.StringBuffer 클래스의 주요 메소드

StringBuffer 

append(Stirng str)

기존 문자열에 지정된 문자열 str을 추가한다. 

StringBuffer 

insdert(int offset, String str) 

 char 

 charAt(int index)

기존 문자열에서 지정된 인덱스의 문자를 반환한다. 

 StringBuffer 

 replace(int strat, int end, String str)

기존 문자열 start 부터 end-1까지의 문자열을 문자열 str로 치환한다. 

 StringBuffer 

 reverse()

 기존 문자열을 역순으로 변경한다. 

 String  

 substring(int start, int end) 

 String 

 toString()

 StringBuffer 객체의 문자열을 String 객체의 문자열로 변환해서 반환한다. 



반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - 입력, 출력 클래스  (0) 2013.10.11
JAVA - java.io 패키지  (0) 2013.10.10
JAVA - java.lang 패키지  (0) 2013.10.08
JAVA - 중첩 클래스  (0) 2013.10.08
JAVA 가비지 컬렉션  (2) 2013.10.06