티스토리 뷰
최근 Clojure 를 다루면서 function name 을 -> 이것을 넣어서 만들수 있었는데 조금 아쉽긴하네요.
snake->camel 이런 이름으로 만드는건 좀 가독성이 좋은뎁 ㅎㅎ
암튼 다음과 같이 만들어 봤어요.
struct Coding {
func snakeToCamel(from input: String) -> String {
if input.isEmpty { return "" }
let split = input
.split(separator: "_")
.enumerated()
.map { $0.0 == 0 ? $0.1.lowercased() : $0.1.capitalized }
return split.joined()
}
func camelToSnake(from input: String) -> String {
let pattern = "([a-z0-9])([A-Z])"
guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
return ""
}
let range = NSRange(location: 0, length: input.utf16.count)
let result = regex.stringByReplacingMatches(in: input,
options: [],
range: range,
withTemplate: "$1_$2")
return result.lowercased()
}
}
snake->camel은 split 방식으로
camel->snake는 regex로
아래는 소스
https://github.com/mrgamza-playground/snakeCamelConverter
'Coding' 카테고리의 다른 글
Python3. lotto 발생기 (0) | 2021.04.02 |
---|---|
Algorithm. permutation 순회 (0) | 2020.12.28 |
Dynamic Programming (0) | 2020.12.19 |
Node.js - 구구단 (0) | 2020.09.03 |
Ruby. Gugudan (0) | 2020.08.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- MySQL
- enum
- Codable
- github
- cocoapods
- golang
- intellij
- Windows
- tomcat
- docker
- nodejs
- Java
- php
- Xcode
- Python
- git
- go
- ios
- Kotlin
- ubuntu
- war
- windows10
- SWIFT
- centos8
- CentOS
- Spring
- Linux
- android
- rxswift
- Gradle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함