Java를 배워보자/4. 자바 API

자바 String 클래스

_Blue_Sky_ 2024. 9. 26. 23:53
728x90
728x90

자바 String 클래스 심층 분석: 문자열의 모든 것

자바에서 문자열을 다룰 때 가장 많이 사용하는 클래스인 String 클래스에 대해 깊이 있게 알아보겠습니다. String 클래스는 문자열을 객체로 다루기 때문에 다양한 메소드를 제공하여 문자열 조작을 쉽게 할 수 있도록 해줍니다.

String 클래스의 특징

  • 불변성(Immutability): 한번 생성된 String 객체는 변경할 수 없습니다. 새로운 문자열을 만들 때마다 새로운 String 객체가 생성됩니다. 이는 멀티스레드 환경에서 안정성을 높여줍니다.
  • 문자 배열 기반: 내부적으로 char 배열을 사용하여 문자열을 저장합니다.
  • String 상수 풀: 문자열 리터럴은 String 상수 풀에 저장되어 중복을 방지하고 메모리 효율성을 높입니다.
  • 다양한 메소드 제공: 문자열 검색, 비교, 추출, 변환 등 문자열 처리에 필요한 다양한 메소드를 제공합니다.

String 클래스 생성 방법

// 1. 리터럴을 이용한 생성
String str1 = "Hello, World!";

// 2. new 연산자를 이용한 생성 (String 상수 풀에 저장되지 않음)
String str2 = new String("Hello, World!");
 

주요 메소드

  • length(): 문자열의 길이를 반환합니다.
  • charAt(index): 특정 인덱스의 문자를 반환합니다.
  • substring(beginIndex): 특정 인덱스부터 끝까지의 부분 문자열을 반환합니다.
  • substring(beginIndex, endIndex): 지정된 범위의 부분 문자열을 반환합니다.
  • indexOf(str): 특정 문자열이 처음으로 나타나는 인덱스를 반환합니다.
  • lastIndexOf(str): 특정 문자열이 마지막으로 나타나는 인덱스를 반환합니다.
  • contains(str): 특정 문자열이 포함되어 있는지 여부를 반환합니다.
  • startsWith(prefix): 특정 문자열로 시작하는지 여부를 반환합니다.
  • endsWith(suffix): 특정 문자열로 끝나는지 여부를 반환합니다.
  • toLowerCase(): 모든 문자를 소문자로 변환합니다.
  • toUpperCase(): 모든 문자를 대문자로 변환합니다.
  • trim(): 문자열 앞뒤의 공백을 제거합니다.
  • replace(oldChar, newChar): 특정 문자를 다른 문자로 모두 바꿉니다.
  • concat(str): 두 문자열을 연결합니다.
  • split(regex): 특정 구분자를 기준으로 문자열을 분리하여 배열로 반환합니다.
  • equals(str): 두 문자열이 같은지 비교합니다.
  • equalsIgnoreCase(str): 대소문자를 구분하지 않고 두 문자열이 같은지 비교합니다.

예제

String str = "Hello, Java!";

// 문자열 길이 출력
System.out.println(str.length());

// 특정 문자 추출
char ch = str.charAt(7);
System.out.println(ch);

// 부분 문자열 추출
String subStr = str.substring(7);
System.out.println(subStr);

// 문자열 비교
boolean isEqual = str.equals("Hello, Java!");
System.out.println(isEqual);

String 클래스 활용 시 주의사항

  • 불변성: String 객체는 변경할 수 없으므로 새로운 문자열을 만들어야 합니다.
  • String 상수 풀: 리터럴로 생성된 문자열은 String 상수 풀에 저장되므로 메모리 효율적이지만, new 연산자로 생성된 문자열은 그렇지 않습니다.
  • StringBuilder, StringBuffer: 많은 양의 문자열 조작이 필요한 경우 StringBuilder나 StringBuffer를 사용하여 성능을 향상시킬 수 있습니다.

결론

String 클래스는 자바에서 문자열을 다루는 데 필수적인 클래스입니다. 다양한 메소드를 제공하여 문자열 조작을 쉽게 할 수 있지만, 불변성과 String 상수 풀의 특징을 이해하고 사용해야 합니다.

 

728x90
728x90

'Java를 배워보자 > 4. 자바 API' 카테고리의 다른 글

자바 Collection 프레임워크 (List, Set, Map)  (0) 2024.09.27
자바 Date 클래스  (0) 2024.09.27
자바 Math 클래스  (0) 2024.09.26
자바 Wrapper 클래스  (0) 2024.09.26
자바 API 소개  (0) 2024.09.26