Format Specifier
Format Specifier
String(format: "%.5fKB", size) > 소숫점 5자리 수까지 표현 한 후 "KB"를 붙여 출력 한다
String(format: "Hello, %@", "Swift")
String(format: "%d", 12) > 12를 출력한다.
String(format: "%.3f", 12.34) > 소수점 3자리 수까지 , 즉 12.340 을 출력한다.
String(format: "[%d]", 123) > 출력값 [123]
String(format: "[%10d]", 123) > 출력값 앞쪽에 빈공간을 만든다. 출력값 [ 123]
String(format: "[%-10d]", 123) > 출력값 뒷쪽에 빈공간을 만든다. 출력값 [123 ]
String(format: "[%-10d]%%", 123) > 출력값 뒷쪽에 빈공간을 만든 후 % 를 붙여 출력한다. 출력값 [123 ]%
다양한 출력 할 수 있는 규칙들을 다시 한번 숙지하자
Escape Sequence
str = "\\"
// \ 하나만 출력됨
print("A\tB")
// t 는 탭이므로 문자열에 탭이 추가됨
print("A\nB")
// n 은 줄바꿈으로 문자열이 줄바꿈됨
print("\"Hello\" he said.")
"""
\"Hello\" he said.
"""
// Extended String Delimeters
#"\"Hello\" he said."#
// #은 \와 " 를 문자그대로 출력함
// #의 갯수를 맞춰 사용해야한다.
let value = 123
print(#"The value is \#(value)"#)
let multiline = #"""
"Multiline"
String
Literal
"""#
String Indices
문자열에서 문자나 코드의 위치
: 스위프트에서 문자열의 인덱스를 표현하기 위해서 사용하는 특수한 타입이다.
문자열의 맨 첫 글자 구하기
prefix(n) : 앞에서부터 n글자 가져오기
let he = hello.prefix(2)
startIndex 활용하기
let first = hello[hello.startIndex]
String.Index(encodedOffset: 0) : 0번째 인덱스를 나타내는 인덱스 생성
문자열의 두 번째 글자 구하기
두 번째 글자를 나타내는 인덱스를 먼저 생성한 뒤, 그 인덱스를 활용해 두 번쨰 글자를 찾는다.
let secondIndex = hello.index(after: hello.startIndex)
let second = hello[secondIndex]
문자열의 n번째 글자 구하기
func String.index(Substring.Index, offsetBy: Int) -> Substring.Index 를 활용
문자열의 n번째 이후 모든 글자 구하기
let s = "12:00:00AM"
let timeIndex = s.index(s.startIndex, offsetBy: 7)
let timeStr = String(s[...timeIndex]) // 12:00:00
let ampmIndex = s.index(s.endIndex, offsetBy: -2)
let ampmStr = String(s[ampmIndex...]) // AM
// 또는 아래와 같이 구할 수도 있다
let timeStr2 = s.prefix(8) // 12:00:00
let ampmStr2 = s.suffix(2) // AM
문자열의 맨 마지막 글자 구하기
subfix(n) : 뒤에서부터 n글자 가져오기
let lo = hello.suffix(2)
endIndex 와 index(before:) 활용하기
endIndex는 문자열의 마지막 글자가 아닌 맨 끝을 가리킨다.
❌ hello[hello.endIndex] -> 에러.
⭕️ let endIndex = hello.index(before: hello.endIndex)을 구한 뒤, let last = hello[endIndex] 로 구한다.
let endIndex = hello.index(hello.endIndex, offsetBy: -1)
인덱스로부터 왼쪽으로 움직일 때는 offsetBy 값으로 음수를 사용해 준다.
let str = "Swift"
str.startIndex
let firstCh = str[str.startIndex]
print(firstCh)
let lastCharIndex = str.index(before: str.endIndex) //endIndex 는 마지막 문자의 다음 문자
let lastCh = str[lastCharIndex]
print(lastCh)
String Basics
Swift 내 문자열을 출력할 수 있는 기본 규칙이다.
var str = "Hello, Swift String"
var emptyStr = ""
emptyStr = String()
let a = String(true)
let b = String(12)
let c = String(12.34)
let d = String(str)
let hex = String(123, radix: 16)
let repeatStr = String(repeating: "👍", count: 7)
let clap = "\u{1f44f}"
let e = "\(a) \(b)"
let f = a + b
str += "!!"
str.count
str.count == 0
str.isEmpty
str == "Apple"
"apple" != "Apple"
"apple" < "Apple"
// 아스키 코드
str.lowercased()
str.uppercased()
str.capitalized
for char in "Hello" {
print(char)
}
let num = "1234567890"
num.randomElement()
num.shuffled()
'◽️ Programming > Swift 문법' 카테고리의 다른 글
Swift Closure (0) | 2024.03.01 |
---|---|
Swift Findig Substrings, 배열(Array) (0) | 2024.03.01 |
Swift (for 문 , enum , optional, unwrap) (0) | 2024.03.01 |
Swift Optinals Type (0) | 2024.03.01 |
Swift 함수 기초 (0) | 2024.03.01 |