본문 바로가기

Foundation/- Java

유용한 클래스(String class)(1)

1.1 String클래스의 특징

- 문자열 배열(char[])과 그에 관련된 메서드들이 정의되어 있다.

- String인스턴스의 내용은 바꿀 수 없다.

  (StringBuffer인스턴스에 저장된 문자열은 변경이 가능하다)

 

1.2 문자열의 비교

(String str = "abc" vs String str = new String("abc");

 

▶예시.

 

equals()를 사용했을 때는 두 문자열의 내용("abc")를 비교하기 때문에 두 경우 모두 true를 결과로 얻는다. 여기서 문자열 리터럴 "abc"는 한번만 저장되며, 따라서 str1과str2는 "abc"인스턴스를 공유하게 된다. 따라서 true를 반환하고 str3과 str4는 new 연산자에 의해서 메모리할당이 이루어지기 때문에 새로운 String인스턴스가 생성되서 서로다른 "abc"가 된다. 따라서 false가 반환된다.

 

1.3 빈 문자열 ("", empty string)

- 내용이 없는 문자열이다 크키가 0인 char형 배열을 저장하는 문자열이다.

- 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능하다.

- String str="";는 되지만 char c= ''; 는 불가능하다 c = ' ';처럼 char형 변수에는 반드시 하나의 문자를 지정해야한다.

- String은 참조형의 기본값인 null보다 빈 문자열로 초기화하고 char형은 기본값인 '\u0000'보다 공백으로 초기화한다.

 

1.4 String클래스의 생성자와 메서드

- String클래스 내 생서자와 메서드는 무수히 많다. 무작정 외우는 것보다 필요할때마다 쓰고 익혀나가는 것이 좋다.

 

(1) String(Stirng s)

- 주어진 문자열(s)을 갖는 String인스턴스를 생성한다.

 

(2) String(char[] value)

- 주어진 문자열(value)을 갖는 String인스턴스를 생성한다.

 

(3) String(StringBuffer buf)

- StringBuffer인스턴스가 갖고 있는 문자열과 같은 내용의 String인스턴스를 생성한다.

 

 

 

(4) char charAt(int index)

- 지정된 위치(index)에 있는 문자를 알려준다.(index는 0부터 시작)

 

(5) char compareTo(String str)

- 문자열(str)과 사전순서로 비교한다. 같으면, 0을, 사전순으로 이전이면 음수를 이후면 양수를 반환한다.

 

(6) String concat(String str)

- 문자열(str)을 뒤에 덧붙인다.

 

(7) boolean contains(CharSequence s)

- 저장된 문자열(s)이 포함되었는지 검사한다.

 

(8) boolean startsWith(String prefix)

- 지정된 문자열(prefix)로 시작하는지 검사한다.

(9) boolean endsWith(String suffix)

- 지정된 문자열(suffix)로 끝나는지 검사한다.

 

(10) boolean equals(Object obj)

- 매개변수로 받은 문자열(obj)과 String인스턴스의 문자열을 비교한다. obj가 String이 아니거나 문자열이 다르면 false를 반환한다.

(11) boolean equalsIgnoreCase(String str)

- 문자열과 String인스턴스의 문자열을 대소문자 구분없이 비교한다.

 

(12) int indexOf(int ch)

- 주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려준다.

못 찾으면 -1을 반환한다.(index는 0부터 시작)

(13) int indexOf(int ch, int pos)

- 주어진 문자(ch)가 문자열에 존재하는지 지정된 위치(pos)부터 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.(index는 0부터 시작)

(14) int indexOf(String str)

- 주어진 문자열이 존재하는지 확인하여 그 위치(index)를 알려준다. 없으면 -1을 반환한다.(index는 0부터 시작)

(15) String intern()

- 문자열 상수풀(constant pool)에 등록한다. 이미 상수풀에 같은 내용의 문자열이 있을 경우 그 문자열의 주소값을 반환한다.

 

(16) int lastIndexOf(int ch)

- 지정된 문자 또는 문자코드를 문자열의 오른쪽 끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.

(17) int lastIndexOf(String str)

- 지정된 문자열을 인스턴스의 문자열 끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.

 

(18) int length()

- 문자열의 길이를 알려준다 . for문 조건식에 주로 쓰이며 유용하다.

 

 

(19)String replace(char old, char nw)

- 문자열 중의 문자(old)를 새로운 문자(nw)로 바꾼 문자열을 반환한다.

(20)String replace(CharSequence old, CharSequence nw)

- 문자열 중의 문자열(old)을 새로운 문자열(nw)로 모두 바꾼 문자열을 반환한다.

(21)String replaceFirst(String regex, String replacement)

- 문자열 중에서 지정된 문자열(regex)과 일치 하는 것 중, 첫 번째 것만 새로운 문자열(replacement)로 변경한다.

 

(22) String[] split(String regex)

- 문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환한다.

 

(23) String substring(int begin)

(24) String substring(int begin, int end)

- 주어진 시작위치(begin)부터 끝 위치(end) 범위에 포함된 문자열을 얻는다. 이 때, 시작위치의 문자는 범위에 포함되지만, 끝 위치의 문자는 포함되지 않는다.

(begin <= x < end)

 

(25) String toLowerCase()

- String인스턴스에 저장되어있는 모든 문자열을 소문자로 변환하여 반환한다.

(26) String toUpperCase()

- String인스턴스에 저장되어있는 모든 무자열을 대문자로 변환하여 반환한다.

 

 

(27) String trim()

- 문자열의 왼쪽 끝과 오른쪽 끝에 잇는 공백을 없앤 결과를 반환하다. 이 때 문자열 중간에 잇는 공백은 제거되지 않는다.

 

 

(28) static String valueOf(some)

- 지정된 값(some)을 문자열로 변환하여 반환한다. 참조 변수의 경우는 toStirng()을 호출한 결과를 반환한다.