String 클래스

✒️ 2025-05-15 11:10 내용 수정

수제비 2024 정보처리기사 필기 5판 1권의 내용을 일부 정리


문자열을 처리하는 객체형 데이터 타입


String 생성

리터럴 : String 인스턴스이름 = "문자열";
객체 생성 : String 인스턴스이름 = new String();

// 문자열 리터럴
// 힙 메모리 내 String Pool에 저장됨
String alpha = "test";
String beta = "test";

// 문자열 객체
// 힙 메모리의 다른 영역에 저장됨
String gamma = new String("test");
생성자 설명
String(String original) 전달 받은 String 객체 original로 새로운 String 초기화
String(char value\[]) 문자 배열 요소로 구성된 새 String 초기화
String(char\[], int offset, int count) 문자 배열 요소로 구성된 새 String 초기화
시작 위치 offset과 문자수 count로 원하는 범위의 문자만 사용 가능함

String Pool

Java에서 문자열 리터럴을 관리하기 위해 사용되는 공간

// 두 String 변수는 String Pool 내의
// 같은 String Literal을 참조한다.
String alpha = "test";
String beta = "test";
// 문자열 리터럴
// 힙 메모리 내 String Pool에 저장됨
String alpha = "test";
String beta = "test";

// 문자열 객체
// 힙 메모리의 다른 영역에 저장됨
String gamma = new String("test");

StringPool.png


String 변형

1. String의 연결

2. String의 분리

3. 기타 유의사항


메서드

메서드 설명
int length() 문자열의 길이를 반환
char charAt(int Index) 문자열을 하나의 단어 단위로 출력. 매개변수는 추출할 문자열 위치를 받음
int indexOf(String ch) 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치를 반환. 해당 문자열에 전달된 문자나 문자열이 포함되지 않았으면 -1을 반환
String replaceAll(A, B) A(또는 범위)를 B로 변환. 정규식을 인식할 수 있음
String substring(int end) 또는 String substring(a, b) 문자열을 원하는 위치에서 자를 때 사용. 입력된 시작 위치부터 문자열의 마지막 전까지, 혹은 (a <= x < b)까지 반환
String repeat(int n) String 전체 값을 n번 반복하여 반환
concat(String str) 현재 String에 마지막에 매개변수로 전달된 String을 순차(concatenate)로 이어줌
toCharArray() 현재 String을 새 문자 배열로 변환
byte[] getBytes() String을 byte[]로 변환, 파일 출력 시 사용 가능
String[] split(String regex) 매개 변수로 전달된 정규 표현식 또는 특정 문자를 기준으로 문자열을 나누어 배열에 저장 후 반환
정규식을 ""로 기재하면 문자 단위로 쪼갤 수 있다.
String[] split(String regex, int limit) 위의 split()에서 최대 분할 수 limit을 양수로 설정하면 limit의 수만큼 분할, 음수라면 가능한 모든 위치에서 분할
join(CharSequence delimiter, .. elements) 연속된 문자열 요소들(배열같은거)를 연결하여 새 String으로 만듦
boolean equals(Object o) 오브젝트와 스트링이 같은지 비교, 문자열끼리 비교할 때 사용(객체 주소까지 체크함)
boolean matches(String regex) 해당 문자열이 주어진 정규식 표현과 일치하는지 확인
trim() 문자열의 시작 부분과 끝 부분에 존재하는 공백 제거. 유니코드 \u0020 이하의 공백만 제거할 수 있다.
strip() trim()과 비슷하지만 유니코드의 공백을 모두 제거
int compareTo(String str) 해당 문자열을 인수로 전달 받은 문자열과 사전 편찬 순으로 비교. 대소문자를 구분함.
같으면 0, (해당 문자열 < 전달 받은 문자열)이면 음수, 크면 양수
int compareToIgnoreCase(String str) 대소문자를 구분하지 않은 compareTo()
boolean contains(CharSequence s) 해당 문자열에 전달 받은 char 시퀀스가 있는지 확인.
toLowerCase(String str) 문자열을 모두 소문자로 변환
toUpperCase(String str) 문자열을 모두 대문자로 변환
boolean isEmpty() 해당 문자열의 길이가 0이면 true, 아니면 false를 반환
void chars() 문자열을 IntStream으로 변환
valueOf(int i) 다양한 데이터 유형을 문자열로 변환. ""을 사용하여 변환하는 것 보다 속도가 빠르다.
boolean startsWith(String s) 전달 받은 문자열이 해당 문자열의 접두사인지 확인하고 true/false를 리턴
비교할 때 공백의 유무를 꼭 확인해야 한다.
boolean endsWith(String s) 전달 받은 문자열이 해당 문자열의 접미사인지 확인하고 true/false를 리턴
마찬가지로 공백의 유무를 꼭 확인해야 한다.

정규 표현식