Java : String(문자열)

2023. 3. 20. 15:45java


public class File03_String {
    public static void main(String[] args) {
        // 문자열(String)
        //  - C 언어 같은 경우 문자열을 char 형 배열로 다루지만
        //    객체지향언어에서는 String 클래스로 다룬다.
        //  - Java 의 String 클래스 내에 문자열을 저장하기 위한
        //    char[] 형인 배열 변수가 있으며, 생성자를 통해 저장
        //  - String 클래스의 객체는 '불변 객체(Immutable)'이기 때문에
        //    인스턴스에 저장된 문자열은 변경할 수 없다.
        //  - 문자열 리터럴은 클래스가 메모리에 로드될 때 생성
        //    → JVM 내 '상수 저장소(Constant Pool)' 에 저장
       
        String s1 = "Hello";
        // 문자열 리터럴은 상수 저장소에 저장되며,
        // 같은 문자열 리터럴이 만들어지지 않는다.
        String s2 = "Hello";
        // 이미 상수 저장소에 저장된 문자열 리터럴이기 때문에
        // 저장되어있던 문자열 리터럴을 그대로 사용
       
        if(s1 == s2) System.out.println("같은 문자열입니다.");
        else System.out.println("다른 문자열입니다.");
       
        // 힙 영역에 String 클래스의 객체를 생성
        String s3 = new String("Hello");
        if(s1 == s3) System.out.println("같은 문자열입니다.");
        else System.out.println("다른 문자열입니다.");
       
        // String 클래스에서는 equals() 메서드를 오버라이딩하여
        // 재정의를 해놨다.
        if(s1.equals(s3)) System.out.println("같은 문자열입니다.");
        else System.out.println("다른 문자열입니다.");
        //-------------------------------------------------------------
       
        // compareTo : 문자열을 사전순으로 비교하기 위한 메서드
        String s4 = "egg";
        String s5 = "canndy";
       
        System.out.println(s4.compareTo(s5));
       
        // concat : 문자열을 이어붙여 반환하기 위한 메서드
        String s6 = s4.concat(" + " + s4);  // 붙여진 문자열을 반환
        System.out.println(s4); //egg
        System.out.println(s6);
       
        // replace :  문자열 내의 일부 문자열을 다른 문자열로
        //            수정하기 위한 메서드
        String s7 = s6.replace("egg", "apple");
        System.out.println(s6);
        System.out.println(s7);
       
        // split : 문자열을 분환하여 문자열 배열로 반환하는 메서드
        String phone = "010-1234-1234";
        String[] phones = phone.split("-");
        for (int i = 0; i < phones.length; i++) {
            System.out.println("[" + i + "] = " + phones[i]);
        }
       
        // contains() : ()내의 문자열이 포함되어 있는지 검사
       
        // charAt : n 번째 문자를 반환
        char c = s7.charAt(2);
        System.out.println("s7[] = " + c);
        for (int i = 0; i < s7.length(); i++) {
            System.out.println("s7[" + "] = " + s7.charAt(i));
        }
       
        // indexOf : 지정된 문자 또는 문자열의 위치를 반환
        int index = s7.indexOf("candy");
        System.out.println("candy in s7 → " + index);
       
        // isEmpty : 빈 문자열인지 검사
        System.out.println(s7.isEmpty());
       
    }
}

'java' 카테고리의 다른 글

Java : Collection  (0) 2023.03.20
Java : Object(객체)  (0) 2023.03.20
Java : Throw, Throws (예외 관련 구문)  (0) 2023.03.20
Java : Exception Handling(예외 처리)  (0) 2023.03.20
Java : Interface(인터페이스)  (0) 2023.03.20