Swift TIL(53)

웰디(Well-D)·2023년 10월 18일
0

Sweet & Soft, SWIFT

목록 보기
51/76

복습

원하는 만큼 하진 못했지만 좋은 책을 만났으니+적절한 휴식 성과가 있었다고 위안하며 마무리

문자열과 배열은 스위프트에서는 나름 차이가 조금 있다(어제내용도 그렇지만) 그런 부분이 javascript 나 python과는 조금 다른 부분

어쨌든 collection 프로토콜을 따르기 때문에 insert, replace, append, remove 등을 가지고 있다는 것은 일맥상통한다 , 자연스럽게 외워질 내용들일듯

가볍게 정리

문자열 다루기

  • 스위프트는 대소문자를 구분한다 (내일 배울 내용에서 또 나올 듯)

  • losercased() , uppercased(), capitalized

  • count, isEmpty, contains(), randomElement()

  • " " 와 "" 의 count와 isEmpty를 생각해보자

  • 빈문자열 nil아님 주의

  • 문자열의 인덱스는 String.index타입 != 배열의 정수타입 / 서브스크립트 사용가능 / Index메서드로 인덱스를 구해서 서브스크립트 문법을 쓰자

  • index(_,offSetBy: ), index(before: ), index(after: )

  • index.fristIndex(of: ), index.lastIndex(of: ) => 옵셔널임을 주의, unwrapping필요

  • 문자열.indeices 속성 => 문자열의 인덱스들을 꺼낼수있다 / 반복문과 사용하여 서브스크립트로 문자들을 하나씩 꺼내보자 (print에 terminator: "" 을 넣어보자)

  • 공백 다음문자를 서브스크립트 문법으로 출력하려면? 어떻게 활용해야할까 : 공백 문자 인덱스를 찾고 => 해당 인덱스와 1글자 차이나는 인덱스를 구한후 서브스크립트를 쓴다

  • 서브스크립트 내 인덱스가 범위를 넘어가면 에러발생 => endIndex를 그대로 쓰면 에러가 난다 => 마지막 글자를 얻으려면 어떻게 해야하는지 생각해보자 (offsetBy, before 방법두가지)

  • 에러를 방지하기 위해 첫번째 인덱스와 마지막인덱스사이에 내가 구한 인덱스가 있다는걸 어떻게 확인하는 로직을 작성할지 생각해보자

  • 범위 [lower...upper] => lower부터 upper까지 출력됨

  • range메서드는 옵셔널반환 => unwrapping이 필요함에 주의! / range(of: ), range(of: ,options: [.caseInsensitive])!

  • 문자열사이의 거리를 정수형태(offsetBy에 쓰듯)로 distance메서드로 구할수있다

  • 삽입 insert메서드 /insert( , at:), insert(contetnsOf: , at:)

  • 교체 replaceSubrange메서드 / replaceSubrange(범위, with:문자/문자열) replacingOccurances메서드(원본유지, 변형 리턴 => 받아서 사용) replacingOccurances(of: 문자/문자열, with:문자/문자열) => options, range등 추가가능

  • 추가 append메서드

  • 제거 remove메서드(다양함) remove(at: 인덱스) / removeSubrange(범위) , removeAll(=>keepingCapacity 옵션추가가능) , removeFirst(개수), removeLast(개수)

profile
Wellness 잘사는 것에 진심인 웰디입니다. 여러분의 몸과 마음, 통장의 건강을 수호하고싶어요. 느리더라도, 꾸준히

0개의 댓글