sussa
컴퓨터가 할 일은 컴퓨터가.
sussa
전체 방문자
오늘
어제

블로그 메뉴

    • 분류 전체보기 (58)
      • Language (58)
        • JAVA (58)

    공지사항

    인기 글

    태그

    • BinarySearchTree
    • 캡슐화
    • Stream
    • 최종연산
    • Class
    • singleton
    • Algorithm
    • java
    • Database
    • Instance
    • spring
    • 스파르타코딩클럽
    • Method
    • DI
    • Til
    • 다형성
    • HTML
    • 상속
    • inheritance
    • 조건문
    • CSS
    • 웹개발종합반
    • tree
    • 자료구조
    • Web
    • Thread
    • 재귀
    • binaryTree
    • recursion
    • 개발자

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    sussa

    컴퓨터가 할 일은 컴퓨터가.

    Language/JAVA

    Java String Class

    2022. 8. 26. 22:49

    🎯 목표 : String 클래스의 이해와 메소드 확인

    📒 String Class

    ❗특징

    • chas 배열로 생성된 불변 객체의 값이다.
    • 문자열 리터럴은 프로그램 실행시 자동으로 생성된다. - constant pool에 저장
    • 같은 내용의 문자열 리터럴은 하나만 만들어진다.

    📌 특징 분석

    👉 String 객체의 비교

    String a = "Hello";
    String b = new String("Hello");
    
    System.out.println(a == b); // false
    System.out.println(a.equals(b)); // true
    • 참조변수 a, b는 문자열 객체를 참조하고 있다.
    • == 연산자로 비교하면 false가 출력되고, ==연산자는 값을 비교하는것이 아니라 객체가 변수로 Input 되면 해당 객체의 주소를 비교하는 것이다.
    • 참조변수 a는 문자열 리터럴로 정의된 문자열 객체로서 String constant pool에 저장이 되고, 참조변수 b는 new 연산자로 생성된 객체로 heap 영역에 저장이된다.
    • 문자열의 객체의 값을 비교할때는 String 클래스의 메소드 equals()를 사용한다. equals() 메소드는 Object의 메소드이며 Object 클래스를 상속받은 String 클래스에서 오버라이딩 되어있는 메소드다.

    👉 불변의 객체

    String a = "ab";
    String b = "cd";
    a = a + b;
    • 리터럴로 정의된 문자열 객체는 String constant pool에 값은 같더라도 고유한 주소를 가지고 있다.
    • 참조변수 a 와 b 는 각 리터럴을 가지고 있는 값을 참조하고 있는것이 아니라 고유한 주소를 참조하고 있는것이며, a + b로 참조변수 a를 재정의 하게 되면,  "abcd" 문자열 객체가 새로 생성되어 객체가 가지고 있는 고유한 주소를 새롭게 참조하게된다.
    • a를 재정의 한 후에도 참조변수 a가 기존에 참조하고 있던 주소는 삭제되지 않으며 불변이다.

     

    📌 String 클래스의 메소드

    👉 String(String s)

    • 주어진 문자열 s 를 같는 String 인스턴스를 생성한다.
    String s = new String("Hello");
    s = "Hello"

    👉 String(char[] value)

    • 주어진 문자열 value를 갖는 String 인스턴스를 생성한다.
    char[] a = {'H','e','l','l','o'};
    String b = new String(a); 
    b = "Hello"

    👉 String(Stringbuffer buf)

    • StringBuffer인스턴스가 갖고 있는 문자열과 같은 내용의 String 인스턴스를 생성한다.
    StringBuffer a = new StringBuffer("Hello");
    String s = new String(a);
    s = "Hello"

    👉 char charAt(int index)

    • 지정된 위치 Index에 있는 문자를 알려준다 // 0~
    String n = "12345";
    char a = n.charAt(1);
    a = 2

    👉 int compareTo(String str)

    • 문자열 str과 사전순서로 비교하여 같으면 0 사전순서로 이전이면 -1, 이후면 1을 반환한다.
    int i = "aaa".compareTo("aaa");
    int i1 = "aaa".compareTo("bbb");
    int i2 = "bbb".compareTo("aaa");
    i = 0
    i1 = -1
    i2 = 1

    👉 length()

    • int 타입으로 문자열의 길이 반환
    String a = "abcde";
    System.out.print(a.length());
    //출력값 5

    👉 indexOf()

    • 해당 문자의 위치를 int 타입으로 반환
    • 없을 경우 -1 반환
    String a = new String("abcde");
    System.out.print(a.indexOf(c));
    //출력값 2

    👉 replaceAll()

    • 문자열 전체를 교체한다.
    String a = new String("abcde");
    System.out.print(text.replaceAll("abcde", "12345")); 
    // 출력값 12345

    👉 split()

    • 문자열을 지정된 분리자로 나누어 배열에 담아 반환
    String a = "Cat,Dog,Bird";
    String[] r = a.split(","); 
    System.out.println(Arrays.toString(r));
    
    [Cat, Dog, Bird]

    👉 join()

    • 문자열의 배열을 분리자로 나누어 결합.
    String a = "Cat,Dog,Bird";
    String[] r = a.split(",");
    String str = String.join("-", r);
    System.out.println(str);
    //출력값 Cat-Dog-Bird

    'Language > JAVA' 카테고리의 다른 글

    Java StringBuffer Class  (0) 2022.08.26
    Java 문자열과 기본형 형변환  (0) 2022.08.26
    Java 내부클래스와 익명클래스 - OOP  (0) 2022.08.26
    Java Interface의 다형성 - OOP_추상화  (0) 2022.08.24
    Java Instance Array - OOP  (0) 2022.08.24
      'Language/JAVA' 카테고리의 다른 글
      • Java StringBuffer Class
      • Java 문자열과 기본형 형변환
      • Java 내부클래스와 익명클래스 - OOP
      • Java Interface의 다형성 - OOP_추상화
      sussa
      sussa
      Efforts to take on a challenge

      티스토리툴바