-
Swift #3 - 문자와 문자열Swift의 온도 2021. 1. 5. 04:59
1. 문자 다루기
- 문자 : Character
let x:Character = "a"//let x:Character = "abc" // 타입 선언 생략 시 String 타입으로 선언되므로 생략X// 값을 복수 입력 시 문자열로 인식하므로 단일 문자로 입력* 유니코드 문자let x:Character = ""let x:Character = "♥"* 유니코드 입력 : \u{}let x:Character = "\u{63}" //clet x:Character = "\u{2665}" //♥cs - 비교
*동일 비교let x:heart = "\u{2685}"print(heart == "♥") // 같은 문자인지 비교*크기 비교let star:Character = "★"let heart:Character = "♥"print(star > heart) // 어떤 것이 더 큰 값인지 비교cs 2. 문자열 다루기
- 문자열 생성
#일정한 형식에 맞는 문자열 만들기
#Foundation Framework 필요
*타입 : Stringvar x = "Hello, Swift Language" // 문자열에 타입을 명시하지 않을 시 기본적으로 String 타입 적용var x2:String = "Swift" // 문자열 타입 명시하길 원할 시 String 명시*String Interpolation : \()let x = "1 + 2 = \(1+2)" // "1+2", 즉 3이 문자열로 명시let x2 = "Hello, \(x2)" // "\(x2)" 안에 들어갈 변수나 상숫값이 문자열로 명시cs - 다른 기본 타입에서 문자열 생성
let x = String(4) // "4"를 문자열로 명시let x2 = String(True) // "True" 값을 문자열로 명시cs - 문자에서 문자열
let x:Character = "♥"let x2 = String(x)cs - 형식 문자열 생성
import FoundationString(format: "%03d", 12) // "012"(0은 가장 앞에 0을 삽입, 3은 12를 포함 총 자릿수를 의미) 알파벳 "d"는 정수형 입력 시 삽입String(format: "%3.2f", 3.14159) // "3.14" 알파벳 "f, e"는 실수형 입력 시 삽입String(format: "%3.2e", 3.14159) // "3.14e+00"cs - 문자열 붙이기
* +연산자var x = "Hello"x = x + " Swift"x += "!"print(x)* append(_:) 함수로 문자나 문자열 덧붙이기var x = "Hello"x.append(" Swift")let exclaim:Character = "!"x.append(exclaim)print(x)cs - 문자열 비교
*문자열 비교 : ==let x = "Hello Swift"if x == "Hello Swift" {print("같은 문자열")}*문자열 시작, 끝 비교let x = "Hello Swift"x.hasPrefix("Hello") // 시작이 같으므로 "true" 출력x.hasSuffix("ground") // 끝이 다르므로 "false" 출력*문자열 비교 : compare#비교 옵션, 범위, 로케일#비교 결과 : 오름차순, 같음, 내림차순var x = "2"var x2 = "1"if x.compare(x2) // x가 x2보다 큼== .orderedAscending {print("오름차순")}*대소문자 구분 없이 비교var x = "b"var x2 = "A"if x.compare(x2)== .orderedAscending {}x.compare(x2, options: .caseInsensitive) // 옵션print("오름차순")cs - 다른 타입으로 변환
*문자열 > 정수/실수 변환#변환 실패 시 : nil 변환let x = Int("123")let x2 = Double("3.14")cs - 문자열 연산
*문자열 연산let x = "xcode"print(x.uppercased())// print(XCODE) : 소문자에서 대문자로 변경let x2 = "XCODE"print(x2.lowercased())// print(xcode) : 대문자에서 소문자로 변경cs - 문자열 내 위치
#문자열 내 위치 다루기 : String.Index
*인덱스 객체 얻기let x = "abc"let first = x[x.startIndex] // alet last = x[x.endIndex] // c가 아니라 아무것도 없는 C String 의 문자열 마지막을 장식하는 '\0' 의 위치를 의미하여 코드를 죽임cs - 문자열 내 검색
#파운데이션 프레임워크 필요
*문자열 내 검색let x = "xcode"let x2 : Range<String.Index>? = x.range(of:"X") // 대소문자를 구분하여 문자열 내에 "q" 값을 찾은 후 없다면 "nill"을 출력하므로 결과값은 "nill"let x3 = x.range(of:"X", options:.caseInsensitive) // 대소문자를 구분하지 않음cs - 트리밍
#문자열 양 끝 특정 문자들 제거
#문자열 중간은 제거 안 함
let x = " xcode "x.trimmingCharacters(in: CharacterSet.whitespaces) // " xcode " 문자열의 양 끝 공백 제거cs - 문자열 길이
*문자열 길이let x = "xcode"x.count // 5cs 'Swift의 온도' 카테고리의 다른 글
Swift #6 - nil과 옵셔널 (0) 2021.01.08 Swift #5 - 제어문 (0) 2021.01.07 Swift #4 - 다수의 데이터 다루기 (0) 2021.01.06 Swift #2 - 데이터 타입과 연산자 (0) 2021.01.01 Swift #1 - 개요 (0) 2020.12.31