Swift 기초문법

[레인스톤 iOS] 스위프트 easy하게 배워볼까? - 문자열과 문자(1)

레인스톤 2022. 1. 29. 13:08
반응형

안녕하세요!

iOS개발자로 일하고있는 레인스톤입니다:)

 

오늘은 문자열과 문자에 대해 알아보겠습니다!

문자열과 문자

  • swift의 string은 Foundation 프레임워크의 NSString이 bridge된 타입
  • NSString의 메소드를 String에서 캐스팅 없이 사용 가능
  • swift의 string은 값 타입(value type)
  • 그래서 string이 다른 메서드로 부터 생성되면 string값이 할당될 때 레퍼런스가 아닌 값을 복사해서 할당
  • 즉 다른 메서드에서 할당 받은 문자열은 그 문자열을 수정해도 원본 값이 변하지 않음

 

문자열 리터럴

 

문자열은 큰 따옴표로 묶어 표현합니다.

 

let hello = "설 연휴입니다."

 

여러줄의 문자열을 사용하고 싶은 경우?

큰 따옴표 3개로 묶어서 사용할 수 있습니다.

 

let hello = """
설 연휴에도
공부하고 있는
내 인생이
레전드
ㅠㅠㅠ
"""

print(hello)
/*
설 연휴에도
공부하고 있는
내 인생이
레전드
ㅠㅠㅠ
*/

 

들여쓰기도 가능합니다.

들여쓰기의 기준은 끝나는 지점의 큰따옴표의 위치입니다.

 

let hello = """
    설 연휴에도
공부하고 있는
내 인생이
  레전드
ㅠㅠㅠ
"""

print(hello)
/*
    설 연휴에도
공부하고 있는
내 인생이
  레전드
ㅠㅠㅠ
*/

 

문자열 리터럴은 특수 문자를 포함할 수 있습니다.

  • \" , \' , \r , \n, \u 등 특수 문자 사용이 가능합니다.
let fromTeamLeader = "팀장님이 \"이제 그만 쉬어\" 라고 말했다."

print(fromTeamLeader) // 팀장님이 "이제 그만 쉬어" 라고 말했다.
let dollaSign = "\u{24}"
let blackHeart = "\u{2665}"

print(dollaSign) // $
print(blackHeart) // ♥

 

백슬래쉬와 괄호를 이용해 상수, 변수, 리터럴 값을 문자열에 추가할 수 있습니다.

 

let multiplier = 3
let message = "\(multiplier) 곱하기 2.5 는 \(Double(multiplier) * 2.5)"

print(message) // 3 곱하기 2.5 는 7.5

 

빈 문자열 초기화

 

var emptyString1 = ""
var emptyString2 = String()

print(emptyString1 == emptyString2)

 

두 변수의 문자열 값은 같습니다.

 

var emptyString1 = ""
var emptyString2 = String()

emptyString1 += "새해 복"
emptyString2 = "많이 받으세요"

print(emptyString1, emptyString2) // 새해 복 많이 받으세요

 

이런 방법으로 문자열을 수정할 수도 있습니다.

+= 변수에 문자열을 더해주는 방법입니다.

= 는 변수에 문자열을 할당해주는 방법입니다.

 

문자

 

문자열의 개별 문자를 for-loop를 통해 접근할 수 있습니다.

 

let numberString = "12345"

for character in numberString {
    print(character)
}

/*
1
2
3
4
5
*/

 

문자를 타입으로 지정해서 상수/변수를 선언할 수도 있습니다.

 

let questionMark = "?"
let questionMark2: Character = "?"

print(type(of: questionMark)) // String
print(type(of: questionMark2)) // Character

 

문자열 배열을 이용해 문자열의 초기화 메소드에 인자로 넣어 문자열을 생성할 수도 있습니다.

 

let charForSayHI: [Character] = ["안", "녕", "하", "세", "요"]
let sayHI = String(charForSayHI)

print(sayHI) // 안녕하세요

 

문자열과 문자열뿐만 아니라, 문자열에 문자를 결합하는 것도 가능합니다.

 

let string1 = "설 연휴에도"
let string2 = "공부 중 입니다"
var status = string1 + string2
let exclamationMark: Character = "!"
status.append(exclamationMark)

print(status) // 설 연휴에도공부 중 입니다!

 

끗!

오늘은 문자열과 문자에 대해 간단히 알아봤습니다.

다음 시간엔 유니코드부터 더 디테일한 내용을 살펴보겠습니다.

반응형