본문 바로가기
java

[Java] java.lang 패키지 : String

by jinbro 2017. 1. 20.

[java.lang 패키지 클래스] : 자바의 기본 클래스 및 인터페이스 모음 패키지, 자동 import됨


[문자열 관련 클래스(String, StringBuffer, StringBuilder, StringTokenizer)]

1) String : 문자열을 데이터 타입(객체)로 선언하는 클래스이며, concat, replace 등 문자열을 조작하는 메소드를 멤버로 가지고 있다.

=> 문자열을 생성하는 방법은 객체 생성, 리터럴 2가지가 있음

=> 리터럴로 생성하면 값이 같을 경우 같은 참조값을 갖기 때문에 == 으로 참조값을 비교했을 때 true를 반환함   


[메소드]

=> concat : 기존 문자열에 다른 문자열을 붙일 때 사용하는 메소드

=> replace : 문자열 중 일부를 변경할 때 사용하는 메소드

=> length : 문자열의 길이를 반환하는 메소드

=> charAt : 특정 index(인덱스는 0부터 시작함)의 문자열을 반환하는 메소드, 문자열 길이에 맞지 않는 인덱스일 경우 IndexOutOfBound 익셉션이 발생한다.

=> substring : 문자열 중 일부만 추출하는(index 1 ~ 2개를 이용한) 메소드

=> trim : 문자열의 앞뒤 공백을 제거

=> toUpperCase : 문자열을 대문자로 만들어줌

=> toLowerCase : 문자열을 소문자로 만들어줌

=> indexOf : 문자열에서 특정 문자나 문자열을 검색해서 일치하는 값이 있다면 index를 반환해주는 메소드, 없을 때는 -1 반환




[알아둘 것]

1) String은 이러한 변경메소드를 사용할 때마다 새로운 String 객체를 만들어내기 때문에 문자열에 대한 조작이 많은 경우 StringBuilder나 StringBuffer를 사용해왔다. 그러나 jdk 1.5부터 내부에서 StringBuilder로 문자열에 대한 변경을 하기 때문에 String으로 작업을 해도 성능 상에 이슈가 없다고 한다.


2) 문자열 생성 시 객체생성으로 만들 때 인자로 char형 배열을 받아도된다.


3) 문자열 비교 : ==, != 비교 연산자 사용, 값을 직접 비교하는 것이 아니라 참조값을 비교한다. 

     문자열 값 비교 : str1.equals(str2)와 같이 equals 메소드를 통해 비교한다.





댓글