반응형

String클래스

 

1. String클래스는 char[]와 메서드(기능)를 결합한 것

String클래스 =char[] + 메서드(기능)

문자열은 문자가 나열되어 있는 것이다. 
예를 들어 a b c가 나열되어있으면 이것은 char[]에 담을 수 있다. 
그치만 Java에서 문자열은 String클래스로 다루는게 편리하다

String클래스는 char[]문자배열에다가 메서드(기능)을 붙여놓은 것이다.
서로 관련있는 메서드를 묶어놓은 것이다.

그래서 문자 배열(char[])을 사용하는 것 보다는 String클래스를 사용하는게 훨씬 편리하다.

 

2. String클래스는 내용을 변경할 수 없다 (read only)

 

예를 들어서 이런 코드가 있을 때, 그림으로 표현하면 오른쪽 과 같다.
참조형이이므로 문자열"a"를 참조변수로 가리키고 문자열 "b"를 참조변수로 가리킨다.

이때, a =  a + b를 하면 문자열 결합이 된다.
즉, a = "a"+"b"이다.
결국 "ab"가 된다.

근데 기존에 a에 저장되어 있던 문자열"a"가 "ab"로 바뀌게 되는 것이 아니라
완전히 새로운 "ab"가 만들어지고, 참조변수a가 새로 만들어진 "ab"의 주소를 가리키게 된다.

그래서 String클래스는 내용을 변경할 수 없고, 읽기만 가능하다.

문자열 결합을 해도, 완전히 새로운 문자열이 만들어지는 것이지, 기존에 있는 문자열이 바뀌는 것이 아니다.

 


 

String클래스의 주요 메서드

앞서 말했듯, String클래스는 char[] + 메서드이다.
메서드가 상당히 많은데, 그중에 많이 쓰이는 것들 몇개만 표로 나타낸 것이다. (추가적인건 9장에서 공부예정)

charAt(int index)은 문자열에서 지정된 인덱스에 있는 문자를 반환한다.

만약에 문자열이 "ABCDE"로 되어있다면, charAt(3)을 하면 인덱스 3에 위치한 'D'를 ch에 저장하게 된다.

 

int length()는 문자열의 길이를 반환한다.
 예제에서 str.length = 5이다.

 

substring(int from, int to)는 문자열의 일부를 뽑아내는 것이다(인덱싱).

String str = "012345";
String tmp = str. substring(1, 4);		// str에서 index범위 1~4의 문자들을 반환
System.out.println(tmp);			// "123"이 출력된다.

substring(1, 4);는 마지막인덱스는 제외한 1~3인덱스에 해당하는 문자들을 반환한다. ("123")

 

equals(Object obj)는 문자열의 내용이 같은지 확인해서 같으면 true를 반환, 다르면 false를 반환한다.

 

toCharArray()는 문자열을 문자배열(char[])로 변환해서 반환한다.

[Ex5_1_tmp4]

public class Ex5_1_tmp4 {

    public static void main(String[] args) {
        String str = "ABCDE";
        char ch = str.charAt(2);
        String str2 = str.substring(1, 4);
        String str3 = str.substring(1);
        String str4 = str.substring(1, str.length());
        System.out.println(str);
        System.out.println(ch);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
    }
}

[실행 결과]

ABCDE
C
BCD
BCDE
BCDE
반응형

'JAVA' 카테고리의 다른 글

2차원 배열  (0) 2022.03.23
커맨드 라인 입력받기  (0) 2022.03.23
String배열  (0) 2022.03.23
배열의 활용(3)~(4)  (0) 2022.03.22
배열의 활용(1)~(2)  (0) 2022.03.22