• String 클래스(객체)
    • 문자열 자료형

    • 사용방법

      • 리터럴 방식

        • String a = "Happy Java";
      • 객체 사용 방식

        • String a = new String("Happy Java");
      • 리터럴 방식을 사용하는 것이 String Pool을 사용하게 되므로 최적화에 도움

        • 문자열을 intern pool 이라는 곳에 저장하고 다음에 다시 동일한 문자열이 선언될때는 cache 된 문자열을 리턴

        Untitled

    • 주요 내장 메서드(기능)

      • length()
        • 문자열 길이 반환
      • equals
        • true / false 리턴
        • ==은 주소를 비교함으로서 동일한 객체인지까지 판별하므로 되도록 사용하지 않도록 유의
        • 기본형자료형은 == 사용
          • String 중에서도 리터럴객체는 == 관계 성립
        • equalsIgnoreCase은 대소문자 구분 안하는 메서드
      • indexOf
        • 문자열에서 특정 문자가 처음으로 나타나는 위치의 인덱스를 리턴
      • contains
        • 문자열에서 특정 문자열이 포함되어 있는지의 여부를 리턴
        • true / false 리턴
      • charAt
        • 문자열에서 특정 index의 문자(char)를 리턴
      • toCharArray
        • 문자열을 문자배열로 변환하여 반환
      • replace
        • 문자열 중 특정 문자열을 다른 문자열로 모두 바꾼 새로운 문자를 만들때 사용
        • replaceAll
          • replace와 동일한 기능
          • 다만 정규표현식을 활용할수 있음
      • 정규표현식과 메타문자
        • 정규표현식
          • 정규표현식이란 특정한 문자열의 패턴을 표현하기 위해 쓰이는 형식
          • 주로 전화번호, 주민등록번호, 이메일등과 같이 정해진 형식을 검증하기 위해 사용
          • 정규표현식에서 표현하는 기호를 Meta문자라 한다
        • 대표적인 메타문자
          • ^와 $는 문자열의 시작과 끝을 명시적으로 알림
            • 굳이 써주지 않아도 되나, 메타문자가 섞일경우 시작과 끝을 구분짓는 용도
          • [xz]는 x,z 문자중 하나, [x-z]는 x~z사이의 문자중 하나
          • 대표적인 정규표현식
            • [0-9]는 0~9까지의 숫자를 의미
            • [a-zA-Z]는 영문자를 의미
            • [가-힣]는 한글을 의미
      • substring(a,b)
        • 문자열 중 a부터 b미만까지의 index를 뽑아낼 경우 사용
      • toUpperCase / toLowerCase
        • 대소문자 변환 리턴
        • 그러나, 본래 객체를 변화시키지 않음에 유의
          • String의 모든 메서드는 원본을 변화시키지 않음
          • String은 메모리 관리, 안정성 등을 목적으로 불변객체로 설계가 됨
      • Trim
        • 왼쪽에 있는 공백, 오른쪽에 있는 공백을 다 제거
        • 문자열을 입력받거나 문자열을 합칠경우 쓸데없는 공백 제거를 위해 사용
        • strip은 같은 기능을 하나, 더 안정성이 높음(java11부터 추가됐음)
      • split
        • 문자열을 특정 구분자로 분리하는 메소드
        • 리턴값은 String 배열
      • isEmpty()
        • 문자열이 비어있는지 여부
        • null과는 다름에 유의
      • join()
        • 여러 문자열을 하나로 결합하며, 각 문자열 사이에는 지정한 구분자가 삽입
        • 클래스 메서드이므로 String.join()로 사용해야함에 유의
        • 문법
          • String.join(지정구분자, 문자배열);
    • StringBuffer

      • StringBuffer는 문자열을 추가하거나 변경 할 때 주로 사용하는 객체
      • 기본 문법
        • StringBuffer buf = new StringBuffer(“hello”);
        • buf.append(” java”) // 문자열 추가
        • buf.append(” world”) // 문자열 추가
        • String new_str = buf.toString(); //새로운 String문자열로 변환
      • String과 StringBuffer의 차이
        • String은 immutable, StringBuffer는 mutable
        • String은 += 을 사용해서 문자열을 추가가 가능하지만, 추가가 아닌 재선언인 것
        • 성능면에서 StringBuffer가 우수
      • 주요 메서드
        • append
          • append 메소드를 사용하여 계속해서 문자열 마지막에 추가대상 문자열을 추가
          • String의경우 += 를 통해 추가하는것처럼 보이나, 추가가 아닌 재선언
        • insert
          • insert 메소드는 특정 n번째 위치에 원하는 문자열을 삽입
          • sb.insert(5, "hello ");
        • substring
        • 그외 대부분 메서드는 String과 동일
      • StringBuilder