전체 글
-
swift - Collection Types Overviewswift 2021. 1. 6. 23:26
Collection Types 배열, dictinary set? swift는 3가지 collection Type을 제공 1. Array - 배열은 데이터를 순서대로 저장하는 collection 2. Dictionary - key, value 쌍으로 저장 3. set 집합인데 수학에서 제공하는 집합 메소드를 사용가능 swift는 두가지 collection을 제공 foundation collection - class로 구현된 것 - 참조 형식 swift collection - struct로 구현된 것 - 값 형식 Foundation Collection은 객체형식만 저장가능 swift Collection은 객체, 값 둘다 저장가능 Foundation은 객체만 저장할 수 있지만 객체안에는 어떤 자료형이던 상관 ..
-
swift - Character Setswift 2021. 1. 6. 23:13
Character Set 문자집합 문자열 검색이나 잘못된 문자열을 삭제할때 주로 사용 // 문자열 집합 //원하는 문자만으로 구성된 CharacterSet 만들기 // 대문자만으로 구성된 CharacterSet var a = CharacterSet.uppercaseLetters // 대문자를 제외한 CharacterSet // a상수에 들어 잇는걸 뒤집은거니까 대문자 제외 다 포함 let b = a.inverted var str = "loRem Ipsum" var charSet = CharacterSet.uppercaseLetters // 대문자 검색 if let range = str.rangeOfCharacter(from: charSet) { print(str.distance(from: str.star..
-
swift - Optionsswift 2021. 1. 6. 22:51
Options swift는 총 9개의 Options를 제공함 메소드에서 Options 파라미터를 갖는 메소드에서 사용가능 Case Insensitive Option 대소문자 상관없이 비교 // swift에서는 모두 9개의 문자열 옵션을 제공 // String 문자열 메소드에서 opions 파라미터를 가진 메소드에서 모두 사용 가능 "A" == "a" // .caseInsensitiveCompare() 메소드는 Bool을 리턴하는게 아니라 comparisonResult를 리턴하기 때문에 // .orderedSame같은 것으로 비교해 주어야 함 // 둘은 같은 코드 "A".caseInsensitiveCompare("a") == .orderedSame "A".compare("a", options: [.case..
-
swift - Comparing Stringsswift 2021. 1. 6. 21:26
Comparing Strings let largeA = "Apple" let smallA = "apple" let b = "Banana" largeA == smallA largeA != smallA largeA comparisonReulst : 열거형 // 두 문자열이 같은지 또는 순서상으로 앞에 있는지 뒤에 있는지를 확인하는 메소드 // 문자열이 같은지 largeA.compare(smallA) == .orderedSame // 대소문자 관계없이 비교 largeA.caseInsensitiveCompare(smallA) == .ordere..
-
swift - Appending Strings and Characters, Replacing Substring, Remove Stringswift 2021. 1. 6. 20:18
Appending Strings and Characters var str = "Hello" // append -> 대상 문자열을 직접 변경 // appending -> 직접 변경하지 않고 새로운 string 리턴 str.append(", ") // ~ed, ~ing 붙은 메소드는 원본을 변경하지 않는다. let s = str.appending("Swift") str s // appendingFormat : 원하는 포맷으로 변경된 문자열 리턴 "File size is ".appendingFormat("%.1f", 12.3456) var str2 = "Hello Swift" str2.insert(",", at: str.index(str.startIndex, offsetBy: 5)) if let sIndex ..
-
swift - Substringswift 2021. 1. 6. 19:54
SubString let str = "Hello, Swift" let l = str.lowercased() // Substring -> 하나의 문자열에서 특정 범위에 있는 문자열 var first = str.prefix(1) // 왜 사용할까? // 문자열을 처리할때 메모리 낭비를 줄이기 위해서 // --> Substring은 원본 문자열의 메모리를 공유한다 // Substring은 값을 읽기만 할때는 원본 메모리를 공유하고 값을 변경할때는 새로운 메모리를 할당받는다. // 이 시점에 새로운 메모리를 생성 first.insert("!", at: first.endIndex) // 이런걸 Copy-on-Write Optomizaition 이라고 부른다. str first // Copy-on-Write Opt..
-
swift - String Basicswift 2021. 1. 6. 19:14
String Basic var str = "Hello, Swift String" // 길이가 0인 빈 문자열 생성방법 var emptyStr = "" emptyStr = String() // true가 문자열 true로 바뀜, 실수, 정수도 동일 let a = String(true) let b = String(12) let c = String(12.34) let d = String(str) // 숫자를 특정 진법으로 바꿈 // raidx : ? -> ?진법 let hex = String(123, radix: 16) let octal = String(123, radix: 8) let binary = String(123, radix: 2) // 특정 문자를 원하는 개수만큼 채워서 초기화 let repeatS..
-
swift - String Indexswift 2021. 1. 6. 18:58
String Index // 문자열 인덱스 // swift는 정수로 접근하지 않는다. let str = "Swift" let firstCh = str[str.startIndex] // str.endIndex는 마지막 인덱스 다음 인덱스이기 때문에 에러남 // let lastCh = str[str.endIndex] // 이렇게 가져와야 된다.. let lastCharIndex = str.index(before: str.endIndex) let lastCh = str[lastCharIndex] let secondCharIndex = str.index(after: str.startIndex) let secondCh = str[secondCharIndex] // 근데 이러면 너무 귀찮잖아.. // var thi..