문자열

최수정·2022년 11월 17일
0

이것이 JAVA다

목록 보기
2/10

1. 비교연산 - equals()

  • String의 비교연산은 리터널이 아닌 객체의 번지값으로 계산 된다.

    • new연산자로 새롭게 객체 생성을 하지 않고서, 문자열 리터럴이 동일한 String변수 두개가 있다면, 같은 String 객체를 공유하도록 되어 있어 번지값이 같다.

      // name1 == name2 (true)
      String name1 = "최수정";
      String name2 = "최수정";
      // name1 == name2 (false)
      String name1 = new String ("최수정");
      String name2 = new String ("최수정");
      
    • 객체 상관없이 내부 문자열만을 비교하고 싶을 경우에는 String 객체의 equals() 메서드를 사용한다. ▶️ 대소문자 구분 하므로 유의

2. 문자 추출 - charAt()

  • 문자열에서 특정 위치의 문자를 얻고 싶다면 charAt() 메소드를 이용

3. 문자열 길이 - length()

  • 길이엔 공백을 포함한다.

4. 문자열 대체 - replace()

  • 대체시, 객체에 새로운 내용을 덮어 쓰는게 아니라, 대체된 새로운 객체를 만든뒤 참조를 한다. 이유는 String 객체의 문자열은 변경이 불가한 특성을 갖기 때문

  • 메모리 관련 의문점 : 그럼 대체 전 String도 힙 영역에 저장되어 있는 상태일텐데, 언제 메모리에서 내려가지?

    • 실제로 코테 시, replace를 이용하면 메모리 초과가 난다고함.
    • 정규식은 "매우" 느립니다. String 의 변조 역시 느리기 때문에 StringBuilder 나 Stream 쪽으로 생각을 바꿔서 처리하는게 좋을 것 같습니다.

5. 문자열 잘라내기 - subString()

str.substring(7)  //  index(7)에서 끝까지 자른다. 
str.substring(0,6)  // index(0)에서 index(5)까지 자른다. 

0개의 댓글