본문 바로가기
자바(Java)

자바 입문하기9 - String

by codeyaki 2022. 1. 10.
반응형

해당 강의를 보고 정리한 것입니다.

https://programmers.co.kr/learn/courses/5

 

자바 입문

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

programmers.co.kr


String클래스

: 자바에서 가장 많이 사용하는 문자열을 표현하는 클래스

  • 생성 방법
    1. new연산자를 이용하지 않고 인스턴스 생성
    String str1 = "hello";
    String str2 = "hello";​
      - "hello"라는 문자열이 메모리 중에서 상수가 저장되는 영역에 저장. ( 상수는 변하지 않는 값을 의미)
      - String str2="hello"; >> hello라는 문자열 상수는 이미 생성돼있음. 즉, str1이 참조하는 인스턴스를 str2도 참조

    2. new연산자를 이용해서 인스턴스 생성
    String str3 = new String("hello");
    String str4 = new String("hello");
      - new연산자를 이용해서 인스턴스 생성시 인스턴스는 무조건 새롭게 생성.
      - String str4 = new String("hello"); >> 문자열을 새롭게 생성. 즉, str3와 str4는 서로 다른 인스턴스 참조
    if(str1 == str2){  // 같은 인스턴스를 참조하므로 결과는 true 
        System.out.println("str1과 str2는 같은 레퍼런스입니다.");
    }
    
    if(str1 == str3){  // str1과 str3은 서로 다른 인스턴스를 참조하므로 결과는 false 
        System.out.println("str1과 str3는 같은 레퍼런스입니다.");
    }
    		
    if(str3 == str4){  // str3과 str4는 서로 다른 인스턴스를 참조하므로 결과는 false 
        System.out.println("str3과 str4는 같은 레퍼런스입니다.");
    }
      - 참조 변수끼리 ==로 비교하여 서로 같은 것을 참조하는 지 비교

  • Stirng 클래스 특징
      - 다른 클래스와 다르게 new 없이 사용 가능. 메모리를 아끼려면 new를 사용하지 않고 사용하는 것이 좋다.
      - 불변 클래스. ( 불변 : String이 인스턴스가 돌때 가지고 있던 값을 나중에 수정할 수 없다. )
      - 문자열과 관련된 다양한 메소드를 가지고 있다. 메서드를 호출한다 하더라도 String 내부의 값은 변하지 않음.
      - 메소드중 String을 반환하는 메서드는 모두 새로운 String을 생성해서 반환.
    String str5 = "hello world";
    String str6 = str5.substring(3);​
      - substring()은 문자열 자르기 메소드. (str5은 변하지 않음)
      - str6은 str5가 가지고 있는 문자열 중 3번째 위치부터 자른 결과.(새로운 String 참조)

String클래스 메서드

String str = "hello";
  • 문자열 길이 구하기
    - str.length()는 str이 참조하는 문자열의 길이를 구해서 int타입으로 리턴해주는 메서드
    System.out.println(str.length());​
    >> 5
  • 문자열 붙이기
    - str.concat("문자열") 메서드는 str이 참조하는 문자열 hello에다가 메서드의 인자로 들어온 문자열 world를 붙여서 String타입으로 리턴하는 메서드
    - String Class는 불변 클래스, 그러므로 수행 후 새로운 문자열 생성. (원래 클래스는 변하지 않음)
    System.out.println(str.concat(" world"));
    >>hello world
  • 문자열 자르기
    - str.substring(인덱스1, 인덱스2) 메서드는 str이 참조하는 문자열을 인덱스1부터 인덱스2까지 자른 결과
    (인덱스는 0부터 시작)
    System.out.println(str.substring(1,3));	// 문자열을 인덱스1~3까지 자르기
    System.out.println(str.substring(2));	// 문자열 인덱스2부터 마지막까지 자르기
    >>
    el
    llos
반응형