본문 바로가기
Swift 기초 문법 👊

[Swift_문법] String 문자열 뒤집기 (Feat. 디바이스 MAC 주소 뒤집기) _ 13

by 개발하는윤기사 2023. 8. 3.
728x90
반응형

 

이번 포스팅에서는 String 문자열을 뒤집는 법에 대해 알려드리려고 합니다!!

 

왜냐면 제가 작업하는 도중에,,, 블루투스 디바이스 기기의 MAC 주소값이 거꾸로 나와서,,, 뒤집어줘야 했었기 때문입니다...ㅎㅎ

 

 

처음으로! 애플 공식문서를 살펴보면!

 

- "컬렉션의 요소를 역순으로 표시하는 보기를 반환합니다." 라고 설명이 되어 있습니다!

 

간단한 예시 코드를 한 번 볼까요?

 

let word = "MACAddress"
for char in word.reversed() {
    print(char, terminator: "")
}
// Prints "sserddACAM"

String으로 되어 있는 문자열을 reversed() 메서드를 이용해 for 문을 돌려 문자 하나씩 이어가는 방법인데, 물론 이 방법도 가능합니다!

 

하지만 제가 선호하는 방식은 바로 다음 방법인데요,

let word = "MACAddress"
let reversedWord = String(word.reversed())
print(reversedWord)
// Prints "sserddACAM"

String으로 되어 있는 문자열을 reversed()메서드를 통해 똑같은 String 타입으로 반환해 주는 겁니다! 

 

 

참 쉽죠?

 

 

이제 디바이스 MAC 주소를 뒤집어 봅시다!!

 

"C8:AD:3D:A0:4E:82" 이렇게 나와야 할 MAC 주소가

 

"82:4E:A0:3D:AD:C8" 와 같이 나오고 있는 상황입니다!

 

 

reversed() 메서드를 사용해서 뒤집어 보도록 하죠.

 

 

1. 거꾸로 들어온 나쁜 MAC 주소!!

let originalMacAddress = "82:4E:A0:3D:AD:C8"

 

2. 일단 이 MAC 주소의 ":"를 기준으로 components 메서드를 이용해 분리하도록 합니다.

let segments = originalMacAddress.components(separatedBy: ":")
//["82", "4E", "A0", "3D", "AD", "C8"]

 

3. 분리한 MAC 주소를 가지고 reversed() 해줍니다.

- reversedSegments는 ReversedCollection<[String]>타입

let reversedSegments = segments.reversed()
//["C8", "AD", "3D", "A0", "4E", "82"]

 

4. reversed()된 MAC 주소 값을 다시 joined 메서드를 이용해서 문자열 사이에 ":"를 넣어줍니다. 변환 완료!

let reversedMacAddress = reversedSegments.joined(separator: ":")
//C8:AD:3D:A0:4E:82

 

 

 

전체 코드

let originalMacAddress = "82:4E:A0:3D:AD:C8"
let segments = originalMacAddress.components(separatedBy: ":")
let reversedSegments = segments.reversed()
let reversedMacAddress = reversedSegments.joined(separator: ":")

print(reversedMacAddress)

 

 

 

 

 

참고 : https://developer.apple.com/documentation/applearchive/archiveheader/3589255-reversed

728x90
반응형