ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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}" //c
    let 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 필요

    *타입 : String
     
    var 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 Foundation
    String(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 + " Swift"
    += "!"
    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] // a
    let 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 // 5
    cs

     

    '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

    댓글