JAVA

8. String 클래스

웹꽃기사 2021. 3. 26. 10:52

1)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는 서로 다른 인스턴스를 참조한다.

 

  • 참조변수끼리 == 로 비교하면 서로 같은 것을 참조하는지 비교한다.
  • String은 다른 클래스와 다르게 new를 사용하지 않고 사용할 수 있다. 메모리를 아끼려면 String은 new를 사용하지 않고 사용하는 것이 좋다.
  • String은 불변 클래스이다. 불변이란 String이 인스턴스가 될때 가지고 있던 값을 나중에 수정할 수 없다.
  • String은 문자열과 관련된 다양한 메소드를 가지고 있다. 메소드를 호출한다 하더라도 String은 내부의 값이 변하지 않는다.
  • String이 가지고 있는 메소드중 String을 반환하는 메소드는 모두 새로운 String을 생성해서 반환한다.

 

  • substring은 문자열을 자른 결과를 반환하는 메소드이다. 해당 코드가 실행되어도 str5는 변하지 않는다.
  • str6은 str5가 가지고 있는 문자열 중 3번째 위치부터 자른 결과 즉 새로운 String을 참조하게 된다.

 

 

2) String Class가 제공하는 메소드 이용하기

  • 문자열 길이 구하기
    • str.length()는 str이 참조하는 문자열의 길이를 구해서 int 타입으로 리턴해주는 메소드 이다.

 

  • 문자열 붙히기 (concat)
    • str.concat("world") 메소드는 str 이 참조하는 문자열 hello 에다가 메소드의 인자로 들어온 문자열 world 를 붙혀서 String 타입으로 리턴하는 메소드다.
    • String Class는 불변 클래스로, 메소드가 수행되면, 새로운 문자열을 만든다. 그러므로, 원래 클래스는 변하지 않는다.

 

 

 

  • 문자열 자르기 (subString)
    • str.subString(1,3) 은 str이 참조하는 문자열을 인덱스 1번부터 3번까지 자른 결과이다.
    • str.subString(2) 은 str이 참조하는 문자열을 2번 인덱스부터 마지막까지 자른 결과를 의미한다.
    • 문자열의 인덱스는 0번 부터 시작한다.

'JAVA' 카테고리의 다른 글

9.변수의 scope와 static  (0) 2021.03.26
9. 메소드  (0) 2021.03.26
7.클래스  (0) 2021.03.26
6. for each (향상된 for문)  (0) 2021.03.26
5. 배열  (0) 2021.03.26