ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift - String Method, Property (Create, Read)
    Programming/Swift 2020. 10. 27. 23:43

    [각주:1]">
    [각주:2]

     

     

    오늘은 String의 method와 property에 대해서 공부하도록 하겠습니다.

     

    method와 property가 무엇인지 모르시는 분도 계실 텐데요.

    자세한 내용은 structure, class 포스팅에서 다루도록 하겠습니다.

    지금은 간단하게 method는 Type에 선언된 함수(function), property는 Type에 선언된 상수, 변수로 생각해주세요.

     

    Method와 Property에 대해서 공부할때는 CRUD (Create Read Update Delete)

    즉 생성, 읽기, 업데이트, 삭제 순서로 살펴보겠습니다.

     

    오늘은 이 중에 Create와 Read에 대해서 공부하겠습니다.

     


     

    Create

     

    우리가 String Type의 상수나 변수를 생성할때 어떻게 생성했나요??

     

     

    String Literal을 저장하거나 TypeAnnotation을 이용하기도 하고 String() Initializer(생성자)를 이용해서 선언했습니다.

    생성자?? 그게 뭔데?? 라고 생각을 하시는 분도 계실 거예요.

    Initializer도 structure, class 포스팅에서 자세히 공부해볼 예정이에요.

    지금은 이름 그대로 String을 생성해주는 것으로 넘어가도록 해요.

     

    그럼 만약 0을 100개 저장한 상수를 출력하려 합니다.

    0을 100개 타이핑하는 건 매우 비효율 적이겠죠?

    이때 유용하게 사용할 수 있는 생성자가 String(repeating:count:) 생성자입니다.

     

     

     

    repeating 에는 반복할 String을 count에는 반복할 횟수를 전달하면 됩니다.

     


     

    Read

     

    method(메서드)와 property(속성)를 이용하면 String에 관한 다양한 정보를 알아볼 수 있습니다.

    (사실 String Instance에 관한 다양한 정보라는 하는 게 맞는 표현입니다.

    현재 Instance에 대해서 공부하지 않았으니 String이라고만 표현하겠습니다.)

     

    예제 코드를 보며 설명하겠습니다!

     

     

    count 속성을 이용하면 String의 길이를 알 수 있습니다.

    빈 문자열의 길이는?? 당연히 0이겠죠??

    그럼 count를 이용해서 빈 문자열인지 아닌지 판단하는 코드를 작성할 수 있습니다.

     

     

    String의 길이가 0이라면 빈 문자열이고 아니라면 빈 문자열이 아니겠죠??

    이렇게 판단 가능하지만 이를 확인해주는 property가 존재합니다.

    isEmpty 속성은 String이 빈 문자열이라면 true를 아니라면 false를 Return 합니다.

     

    다음 예제 코드를 살펴보겠습니다!

     

     

    first와 last는 String의 첫 글자와 마지막 글자를 의미하는 property입니다.

    여기서 주의할 점은 Type이 Character? 이라는 부분입니다.

    그렇기 때문에 사용을 할 때는 반드시 Optional binding을 해야 하며

    빈 문자열에 사용해도 에러가 발생하지 않습니다.

     

    다음 예제 코드를 볼게요!

     

     

    randomElement 메서드는 String에서 랜덤 하게 하나의 Character를 뽑아 return 해줍니다.

    그리고 이 메서드도 Character?를 return 하기 때문에 사용하려면 Optional binding을 사용해야 합니다.

     

    마지막으로 살펴볼 Method는 range(of:)입니다.

     

     

    range(of:) method는 of로 전달한 String이 존재한다면 범위를 리턴해줍니다.

    지난 포스팅에서 String index에 대해서 공부했죠??

    리턴해주는 범위의 Type은 Range<String.Index>? 입니다.

    Optional이죠?? 그렇다면 사용할 때 Optional binding을 해야 한다는 건 이제 말씀 안 드려도 잘 아실 거라 믿습니다.

    (else문에서 사용한 fatalError()는 플레이그라운드의 Global Scope에서 guard문을 사용하기 위해 적은 코드입니다. 지금은 무시해 주시면 됩니다.)

     

    그럼 이 범위를 어디에 사용을 할까요??

    사용하는 곳은 여러 가지이지만 오늘 간단하게 살펴볼 method로 replaceSubrange(_:with:)가 있습니다. 

    _에 범위를 전달하고 with에 바꿀 String을 전달하면 원본을 바꿔줍니다.

     

    writer는 처음에 Beepeach였죠?? 여기서 Bee의 범위를 가져와서 이 범위를 Honey로 바꿨습니다.

    그랬더니 writer가 Honeypeach로 바뀐 것을 확인할 수 있습니다.

     

     


     

    참고자료

     

    https://kxcoding.com

     

    여러분의 새로운 도전을 응원합니다 | KxCoding

    Mastering SwiftUI 더 적은 코드로, 더 멋진 UI 만들기

    kxcoding.com

     

     

    https://developer.apple.com/documentation/swift/string

     

    Apple Developer Documentation

     

    developer.apple.com

     

     

     

    1. https://www.freepik.com/free-vector/letters-pattern_1292773.htm#page=1&amp;query=word&amp;position=0 [본문으로]
    2. https://www.freepik.com/free-vector/letters-pattern_1292773.htm#page=1&query=word&position=0 [본문으로]
    728x90

    'Programming > Swift' 카테고리의 다른 글

    Swift - String Method, Property (Delete)  (0) 2021.08.01
    Swift - String Method, Property (Update)  (0) 2021.07.26
    Swift - SubString  (0) 2020.10.22
    Swift - String Index  (0) 2020.10.21
    Swift - Raw String  (0) 2020.10.20
Designed by Tistory.