String(문자열) 기본
※ SWEA의 String 강의를 듣고 정리한 내용
swexpertacademy.com/main/learn/course/lectureVideoPlayer.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
1. 분류
(1) 고정 길이(Fixed length) : 문자열의 길이가 고정된 경우
(2) 가변 길이(Variable length) : 문자열의 길이가 고정되지 않음
- 길이 조절(Length controlled) - Java의 String
- 구분자(Delimited) - C언어의 String
2. Java String 클래스의 메모리 배치(Java.lang.String)
: 기본적인 객체 메타 데이터 + 네가지 필드
- 네가지 필드 : hash, count(String 길이), 데이터 시작점(offset), 실제 String 배열에 대한 참조(value)
- String의 길이를 관리하는 "가변 길이 구조"
3. String처리의 비교
(1) C언어
: 문자들의 "배열 형태"로 구현된 응용 자료형
- 마지막에 끝을 표시하는 Null 문자 '\0'을 넣어줘야 한다.
- 함수 형태의 연산 : strlen(), strcpy(), strcmp()
- 아스키코드로 저장 : 한글 문자 하나는 2bytes, 기본 단위는 1bytes
ex> "컴퓨터" → strlen() : 6
(2) JAVA
: String 데이터를 저장, 처리해주는 클래스를 제공
- Null 문자 사용하지 않음
- 연산자, 메소드 형태로 제공 : -, +, length(), replace(), split(), substring() → 좀 더 풍부한 연산
- 유니코드(UTF16)으로 저장 : 2bytes 단위로 문자 하나 인식
ex> "컴퓨터" → length() : 3
4. String으로 된 숫자를 정수로 변환 : Wrapper 클래스의 toString, parseXXX 이용