프로그래밍 언어/JAVA

자바 String클래스 알아보기

원원 2017. 12. 4. 17:58

안녕하세요. 오늘은 String클래스를 사용해 보겠습니다.





String클래스는 문자열을 다룰 때 주로 사용합니다.

문자열을 String클래스로 사용 할 때 두가지 방법이 있는데요, 첫번째는 문자열의 주소를 저장하는방법과 두번째는 String객체를 만들어서 객체에 문자열을 넣고 객체의 주소를 저장하는 방법이 있습니다.


첫번째 방법 : String st_address = "AAA";

두번째 방법 : String st_object = new String("AAA");


st1과 st2와 st3는 같은 주소의 "AAA"를 가리키게 됩니다.

그러나 아래에 객체를 만든 "AAA"는 서로 다른 주소를 가리키게 됩니다.


이 두가지 방법은 문자열을 비교할 때 차이가 납니다.

문자열을 비교할 때 ==연산자 와 equals함수를 사용하게 되는데 ==연산자는 실제 char데이터를 비교하지 않고 주소값을 비교합니다. 그러나 equals는 실제 char데이터를 비교하게 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class main {
    public static void main(String args[]) {
        String st1 = "AAA";
        String st2 = "AAA";
        String st3 = "AAA";
 
        if (st1 == st2)
            System.out.println("1.참");
        else
            System.out.println("1.거짓");
 
        if (new String("AAA"== "AAA")
            System.out.println("2.참");
        else
            System.out.println("2.거짓");
 
        if (st1.equals("AAA"))
            System.out.println("3.참");
        else
            System.out.println("3.거짓");
 
        if (new String("AAA").equals("AAA"))
            System.out.println("4.참");
        else
            System.out.println("4.거짓");
    }
}
cs

실행결과

1.참

2.거짓

3.참

4.참



String 클래스 메소드

String클래스에서 자주 사용하는 메소드에 대해 알아보겠습니다.





문자열 자르는 함수


substring(int beginIndex), substring(int beginIndex,int endIndex)

반환형 : String

beginIndex : 시작 인덱스

endIndex : 마지막 인덱스

1
2
3
4
5
6
7
8
public class main {
    public static void main(String args[]) {
        String st = "123456789";
        System.out.println(st.substring(3));
 
        System.out.println(st.substring(34));
    }
}
cs
실행결과
456789
4


문자열 붙이는 함수

concat(String str)
반환형 : String
str : 추가할 문자열
1
2
3
4
5
6
7
public class main {
    public static void main(String args[]) {
        String st = "123";
        System.out.println(st.concat("456789"));
    }
}
 
cs

실행결과

123456789




문자열 길이 출력 함수

length()

반환형 : int

1
2
3
4
5
6
public class main {
    public static void main(String args[]) {
        String st = "안 녕 하 세 요";
        System.out.println(st.length());
    }
}
cs

실행결과

9



문자열 나누는 함수


split(String regex), split(String regex, int limit)

반환형: String[]

regex : 나눌 기준

limit : 결과 한계점

1
2
3
4
5
6
7
8
9
10
11
12
13
public class main {
    public static void main(String args[]) {
        String st = "안 녕 하 세 요";
        String[] st_a1 = st.split(" ");
        String[] st_a2 = st.split(" "2);
 
        for (int i = 0; i < st_a1.length; i++)
            System.out.println(st_a1[i]);
 
        for (int i = 0; i < st_a2.length; i++)
            System.out.println(st_a2[i]);
    }
}
cs

실행결과

녕 하 세 요


st_a1배열에 st문자열을 공백을 기준으로 나눠서 저장하였습니다.

st_a2배열에 st문자열을 공백을 기준으로 나눠서 저장하고 한계점을 2번째 인덱스로 하였습니다.(2번째 인덱스는 녕)