BOID

Swift - string 관련 property 및 method (2탄) 본문

알고리즘에 유용한 문법

Swift - string 관련 property 및 method (2탄)

HoonIOS 2021. 7. 1. 17:24

안녕하세요, 저번 1탄에 이어서 이번에도 string관련 메서드 프로퍼티에 대해 포스팅을 하려고 하는데요.

 

이번에는 기본 문자열에 문자열, 문자를 추가하는 것에 대해 포스팅해보겠습니다.

 

 String 관련 기본 프로퍼티, 메서드

 

 .append(String)

 

 

공식문서에서는 기본 string인 문자열에 매개변수로 입력한 string을 뒤에 합치는 것입니다.

 

한번 예시를 살펴보겠습니다.

test라는 변수에 빈 문자열 배열을 추가해줬습니다.

 

 .append()라는 메서드를 통해서 기본 빈 문자열에 appendString을 추가해줬습니다.

 

결과를 보겠습니다.

 

test라는 빈 문자열이 있는 변수에 appendString 문자열을 추가해 줬기 때문에  결괏값은 appendString이 되었습니다.

 

.append()메서드는 String뿐만 아니라 Character값도 String에 추가를 할 수 있습니다.

 

 .append(Character)

 

공식문서에서 살펴보면 기본 String값에서 Character를 Append 한다고 나와있습니다. 내용을 보면 append(String)과 큰 차이는 없네요 ㅎㅎ

 

한번 예시를 살펴보겠습니다.

 

 

기본 test의 빈 문자열에 "/" 하나의 문자 값을 추가해주고 출력을 해보겠습니다.

 

 

예상된 결과대로 문자 한 개만 추가되는 것을 확인할 수 있습니다.

 

 .append(contentsOf: String)

 

공식문서를 살펴보면 주어진 인자 값의 문자를 뒤에 추가해주는 메서드라고 나와 있습니다.

 

기본. append(String)과 같은 역할 같네요.

 

예시를 한번 살펴보겠습니다.

 

 

기본 test: 가 있는 String배열에 append(contentsOf:)를 구현해주었습니다. 

 

그럼 그 결과를 살펴보면

 

기본 문자열 뒤에 인자 값으로 들어간 contentsOf가 붙어서 출력되는 것을 확인할 수 있습니다.

 

 

 .reserveCapacity(Int)

 

이번에 String에 대해 공부하면서 저도 처음 접한 내용입니다. 

 

공식문서에서 살펴보면은 아스키 문자를 저장할 수 있도록 문자열의 기본 저장소에 충분한 공간을 주는 것을 말한다고 합니다. 

 

재할당하는 것이 아니라 추가할 때 그만큼 특정 크기만큼 메모리를 할당하는 거라고 생각을 하면 됩니다.

 

예시를 한번 살펴보겠습니다.

 

 

이렇게 String배열에 해당 메서드를 구현해주면 인자 값에 넣어준 Int형의 크기만큼 메모리를 할당해주는 것입니다.

 

 

 String관련 기본 연산자

 

 +

 

 

공식문서를 살펴보면 해당 무서에서는 특별히 무엇을 다루지 않았습니다....ㅎㅎ 

 

바로 예시로 한번 살펴보겠습니다.

 

 

이것은 과 + 연산자입니다. 사이에 + 로 둘의  String을 이어주었습니다. 

 

결과는 어떻게 나오는지 한번 살펴보겠습니다.

 

 

마치 하나의 String으로 작성을 한 것처럼 한 줄로 출력되는 것을 볼 수 있습니다.

 

그런데.... 맞습니다. String끼리 서로 이어 주는 것이죠!

 

같은 결과를 나오지만 이제 다른 예시를 한번 살펴보겠습니다. 

 

 

first와 second 상수에 문자열을 넣어주고 둘 사이를 +연산자로 이어주고 가운데 ", "로 구분을 해주고 출력을 해보겠습니다.

 

 

입력하는 방법은 다르지만 출력 값이 같은 것을 확인할 수 있습니다.

 

 +=

 

공식문서를 살펴보면 해당 무서에서는 특별히 무엇을 다루지 않았습니다....ㅎㅎ 

 

바로 예시를 두고 살펴보겠습니다.

 

 

first라는 변수에 값을 넣어주고 += 연산자를 이용해서 기본 first 변수에 값을 추가해주었습니다.

 

first값이 어떻게 되었는지 한번 보겠습니다.

 

결과를 보면 +랑 정말 같지만 +=는 두 개의 변수를 붙여주는 게 아니고 기존 변수에 값을 추가해주는 것이라고 볼 수 있습니다.

 

 .insert(Character, at: String.Index)

 

 

공식문서에서 보면 특별한 위치에 새로운 문자를 넣는 것이라고 나와 있습니다. 

 

말 그대로 at에 있는 위치에 특정 문자를 추가해주는 것이네요 ㅎㅎ

 

예시를 한번 살펴보겠습니다.

 

 

첫번째 .insert메서드를 보면은 "_" 문자를 at에 위치하는 특정 위치에 넣는 것을 말합니다. 

 

2번째 매개변수의 조건을 살펴보면 test2 변수의 시작 인덱스로부터 4번째에 있는 곳을 말합니다.

 

즉 위 예시에서는 a다음이 되겠네요

 

두번째 .insert메서드도 보면은 "_"문자를 at에 위치하는 특정 위치에 넣는 것을 말합니다.

 

2번째 매개변수의 조건을 살펴보면 test2 변수의 마지막 인덱스로부터 뒤에서 2번째에 있는 곳을 말합니다.

 

즉 b앞에 가 되겠네요

 

결괏값을 한번 보겠습니다.

 

 

정해준 인덱스의 위치에 추가된 것을 확인할 수 있습니다.

 

 .replaceSubrange<c>(Range<string.index>, with: C)

 

공식문서에서 살펴보면 지정된 경계 내의 텍스트를 지정된 문자로 바꾼다고 나와있습니다.

 

한번 예시를 들어서 살펴보겠습니다.

 

 

.range(of:)메서드를 통해서 문자열의 ABC가 들어있는 string.range값을 구하고 이것을 with매개변수에 있는 abc로 대체했습니다. 

 

만약 if let을 통해. range(of:)에 있는 문자열이나 문자가 해당 변수에 들어가 있지 않으면 nil값을 반환하게 됩니다.

 

그 결과를 살펴보면

 

 

test2 변수의 string에 있는 ABC가 abc로 대체된 것을 확인할 수 있습니다.

 

 

이렇게 String 관련 기본 프로퍼티, 메서드 (2탄)에 대해 포스팅을 했습니다. 

 

string을 다룰 수 있는 다양한 문법이 있어서 재미가 있네요 :)

반응형
Comments