Post

[Swift] 문자와 문자열

[Swift] 문자와 문자열

스위프트에서 문자열과 문자 처리는 매우 강력하고 유연하게 설계되어 있습니다. 문자(Character)와 문자열(String)를 다루는 기본적인 방법을 살펴보겠습니다.

문자


문자 초기화

  • 문자 초기화

    1
    2
    3
    
      let letter: Character = "A"
      let digit: Character = "5"
      let specialCharacter: Character = "!"
    


문자의 유니코드 및 ASCII 값

  • 유니코드 스칼라 값 접근

    1
    2
    3
    4
    
      let character: Character = "A"
      for scalar in character.unicodeScalars {
          print(scalar.value) // 결과는 65
      }
    
  • 유니코드 스칼라 값에서 문자 생성

    1
    2
    
      let scalar = Unicode.Scalar(65)
      let character = Character(scalar!) // 결과는 'A'
    


문자와 문자열 변환

  • 문자에서 문자열 변환

    1
    2
    
      let character: Character = "A"
      let string = String(character) // 결과는 "A"
    
  • 문자열에서 문자 배열 변환

    1
    2
    
      let string = "Hello"
      let characters = Array(string) // 결과는 ["H", "e", "l", "l", "o"]
    


문자 비교

  • 문자 비교

    1
    2
    3
    4
    
      let char1: Character = "a"
      let char2: Character = "b"
      let isEqual = char1 == char2 // 결과는 false
      let isLess = char1 < char2 // 결과는 true
    


문자 속성과 메서드

  • 문자가 숫자인지 확인

    1
    2
    
      let digit: Character = "5"
      let isDigit = digit.isNumber // 결과는 true
    
  • 문자가 대문자인지 확인

    1
    2
    
      let uppercaseLetter: Character = "A"
      let isUppercase = uppercaseLetter.isUppercase // 결과는 true
    
  • 문자가 소문자인지 확인

    1
    2
    
      let lowercaseLetter: Character = "a"
      let isLowercase = lowercaseLetter.isLowercase // 결과는 true
    
  • 문자가 알파벳인지 확인

    1
    2
    
      let letter: Character = "a"
      let isLetter = letter.isLetter // 결과는 true
    


문자 연산

스위프트에서는 문자에 대한 직접적인 산술 연산은 지원하지 않지만, 유니코드 값을 이용하여 문자를 다룰 수 있습니다.

  • 문자의 유니코드 값 변경

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      if let scalar = letter.unicodeScalars.first {
             
          let nextScalarValue = scalar.value + 1
            
          if let nextScalar = Unicode.Scalar(nextScalarValue) {
              let nextCharacter = Character(nextScalar)
              print(nextCharacter) // 결과는 'b' (문자 'a'에서 +1)
          }
      }
    


문자열


문자열 초기화

  • 문자열 초기화

    1
    
      let greeting = "Hello, World!"
    
  • 빈 문자열 초기화

    1
    2
    
      var emptyString = ""
      var anotherEmptyString = String()
    


문자열 연결

  • 문자열 연결

    1
    2
    3
    
      let firstName = "John"
      let lastName = "Doe"
      let fullName = firstName + " " + lastName // 결과는 "John Doe"
    
  • 문자열 보간

    1
    2
    
      let age = 30
      let message = "I am \(age) years old" // 결과는 "I am 30 years old"
    


문자열 속성 및 메서드

  • 문자열 길이 확인

    1
    2
    
      let str = "Hello, Swift!"
      let length = str.count // 결과는 13
    
  • 문자열이 비어 있는지 확인

    1
    2
    
      let str = "Hello, Swift!"
      let isEmpty = str.isEmpty // 결과는 false
    
  • 문자열 비교

    1
    2
    3
    
      let string1 = "Hello"
      let string2 = "Hello"
      let areEqual = string1 == string2 // 결과는 true
    
  • 문자열 접두사 및 접미사 확인

    1
    2
    
      let hasPrefix = str.hasPrefix("Hello") // 결과는 true
      let hasSuffix = str.hasSuffix("Swift!") // 결과는 true
    


문자열 인덱싱 및 슬라이싱

  • 문자열의 특정 문자 접근
    1
    2
    3
    4
    5
    
      let greeting = "Hello, World!"
      let firstCharacter = greeting[greeting.startIndex] // 결과는 'H'
      let lastCharacter = greeting[greeting.index(before: greeting.endIndex)] // 결과는 '!'
      let secondCharacter = greeting[greeting.index(after: greeting.startIndex)] // 결과는 'e'
      let fourthCharacter = greeting[greeting.index(greeting.startIndex, offsetBy: 3)] // 결과는 'l'
    
  • 문자열 슬라이싱

    1
    2
    3
    
      let start = greeting.index(greeting.startIndex, offsetBy: 7)
      let end = greeting.index(greeting.endIndex, offsetBy: -1)
      let substring = greeting[start..<end] // 결과는 "World"
    


문자열 수정

  • 문자열에 문자 추가

    1
    2
    
      var welcome = "Hello"
      welcome.append("!")
    
  • 문자열 삽입

    1
    2
    
      var welcome = "Hello"
      welcome.insert(",", at: welcome.index(welcome.startIndex, offsetBy: 5)) // 결과는 "Hello,"
    
  • 문자열 제거

    1
    2
    
      var welcome = "Hello, World!"
      welcome.remove(at: welcome.index(before: welcome.endIndex)) // 결과는 "Hello, World"
    

읽어주셔서 감사합니다. 😊

Reference
ChatGPT - OpenAI

This post is licensed under CC BY 4.0 by the author.