[Swift] 문자열 String 속성과 관련 함수, 연산자 정리
학습 내용
- Swift에서 String의 속성 알기
- String 관련 함수 알기
- String의 속성을 이해하고 관련 연산자 알기
🎰 Swift에서의 문자열 String
Swift에서 문자열은 다른 개발언어와 유사하게 쓰이지만 신선한(?) 함수들이 있습니다.
최근 업무를 위해 JAVA를 많이 쓰고 있는데, 문자열을 다루다 보면 필요한 메소드들을 직접 구현해야하는 번거로움이 있었습니다.
Swift에서는 그런점을 고려한건지, String관련 다양한 내장 함수들이 있어 정리하면서,
'이런 게 정의되어 있다고..?' 하면서 신기한 부분들도 있었습니다.
String 표기 방식
보통 큰따옴표("")를 이용해서 표현하고, 여러줄의 문자열은 (""" """)를 이용해 묶어서 표현 가능합니다.
let someString = "Some String level"
let quotation = """
The White Rabbit put on his spectacles.
"Where shall I begin, pleasd your MAjesty?" he asked.
"Begin at the begging," the King said gravely, " and go on
till you come to the end; the stop"
"""
빈문자열 생성과 확인 방법 isEmpty
빈 문자열 리터럴로 특히 초기화 해줄 때, 빈 문자열 생성을 할 수 있습니다.
Boolean 속성 isEmpty 를 사용하여 문자열이 비어있는 지 확인 할 수 있습니다.
// Empty String creation using String literal
var stringA = ""
if stringA.isEmpty{
print("stringA is empty")
} else {
print("stringA is not empty")
}
// Empty string creation using String instance
let stringB = String()
if stringB.isEmpty {
print("stringB is empty")
} else {
print("stringB is not empty")
}
문자열 상수 let
문자열을 변수에 할당하여 수정(또는 변경) 할 수 있는지 여부를 지정할 수 있습니다.
- var : 수정가능한 변수
- let : 수정불가능한 변수(상수) - 변하면 안되는 값 들을 지정해 놓음.
// stringA 변수는 수정할 수 있습니다.
var stringA = "Hello, Swift!"
stringA += "--Readers--"
print(stringA)
// stringB 변수는 수정할 수 없습니다.
let stringB = String("Hello, Swift!")
stringB += "--Readers--"
print(stringB)
문자열 보간을 이용한 String 삽입
문자열 보간은 문자열 리터럴 내에 값을 포함하여 상수, 변수, 리터럴 및 표현식의 혼합에서 새 문자열 값을 구성하는 방법입니다.
백 슬래시를 이용하여 문자열 리터럴에 삽입하는 각 항목(변수 또는 상수)를 넣을 수 있습니다.
var varA = 20
let constA = 100
var varC: Float = 20.0
var stringA ="\(varA)times \(constA) is equal to \(varC*100)"
print(stringA)
// 20 times 100 is equal to 2000.0
+ 연산자를 활용한 문자열 연결
다른 개발언어와 유사하게 + 연산자를 이용해 String 을 연결할 수 있습니다.
let a = "Hello,"
let b = "World!"
var string = a + b
print(string)
//Hello,World!
문자열 길이 확인 count()
Swift 문자열에는 길이 속성이 없지만 전역 count() 함수를 사용하여 문자열의 문자수를 계산할 수 있습니다.
let a = "Hello, Swift!"
print("\(a), length is \((a.count))")
// Hello, Swift!, length is 13
equal 대신 == 연산자를 사용한 문자열 비교
== 연산자를 사용하여 두 문자열 변수 또는 상수를 비교할 수 있습니다.
let a = "Hello, Swift!"
let b = "Hello, World!"
if a==b {
print("\(a) and \(b) are equal")
} else {
print("\(a) and \(b) are not equal")
}
// Heelo, Swift! and Hello, World! are not equal
문자열도 하나의 배열, for문을 사용한 문자열 반복
문자열도 배열이므로, for 문을 사용하여 문자열을 반복할 수 있습니다.
for chars in "ThisString" {
print(chars, terminator: "")
}
// T h i s S t r i n g
📌 문자열 함수 및 연산자 정리
- isEmpty
문자열이 비어 있는지 여부를 결정하는 Bool 값.
isEmpty
문자열이 비어 있는지 여부를 결정하는 Bool 값입니다.
hasPrefix(prefix: String)
주어진 매개 변수 문자열이 문자열의 접두어로 존재하는지 여부를 확인하는 함수 입니다.
hasSuffix(suffix: String)
주어진 매개 변수 문자열이 문자열의 접미사로 존재하는지 여부를 확인하는 함수 입니다.
toInt()
숫자 문자열 값을 정수로 변환하는 함수 입니다.
count()
문자열의 문자 수를 계산하는 전역 함수 입니다.
utf8
문자열의 UTF-8 표현을 반환하는 속성입니다.
utf16
문자열의 UTF-16 표현을 반환하는 속성입니다.
+
두 문자열, 문자열과 문자 또는 두 문자를 연결하는 연산자입니다.
+=
기존 문자열에 문자열 또는 문자를 추가하는 연산자입니다.
==
두 문자열의 동일성을 결정하는 연산자입니다.
<, >
한 문자열이 다른 문자열보다 작거나 큰 것으로 비교되는지 확인하기 위해 사전 식 비교를 수행하는 연산자입니다.
startIndex
문자열의 시작 인덱스에서 값을 가져옵니다.
endIndex
문자열의 끝 인덱스에서 값을 가져옵니다.
insert(”Value”, at: position)
위치에 값을 삽입합니다.
remove(at: position), removeSubrange(range)
위치에서 값을 제거하거나 문자열에서 값 범위를 제거합니다.
reversed()
문자열의 역을 반환합니다.