티스토리 뷰
최근 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
- SWIFT
- go
- enum
- ios
- docker
- intellij
- Spring
- Xcode
- windows10
- rxswift
- tomcat
- android
- war
- Python
- nodejs
- github
- Codable
- Kotlin
- centos8
- golang
- CentOS
- Linux
- ubuntu
- cocoapods
- MySQL
- git
- Java
- php
- Gradle
- Windows
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함