이번 포스팅에서는 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
'Swift 기초 문법 👊' 카테고리의 다른 글
[Swift_문법] Subscript (Index out of range 해결🌈) _ 12 (31) | 2022.11.03 |
---|---|
[Swift_문법] 고차함수(map, filter, reduce)에 대해 알아보자 _ 11 (0) | 2022.08.07 |
[Swift_문법] 부족했던 내용 추가 공부하는 윤기사 _ 10 (31) | 2022.06.17 |
[Swift_문법] Inheritance(상속)에 대해 진심으로 알아보는 윤기사_9 (31) | 2022.06.02 |
[Swift_문법] Methods에 대해 한번 알아보는 윤기사_8 (1) | 2022.05.31 |