22 lines
599 B
Swift
22 lines
599 B
Swift
extension String {
|
|
func camelCaseToSnakeCase() -> String {
|
|
var result = ""
|
|
var lastCharacterWasUppercase = false
|
|
|
|
for character in self {
|
|
if character.isUppercase {
|
|
if !result.isEmpty && !lastCharacterWasUppercase {
|
|
result.append("_")
|
|
}
|
|
result.append(character.lowercased())
|
|
lastCharacterWasUppercase = true
|
|
} else {
|
|
result.append(character)
|
|
lastCharacterWasUppercase = false
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|
|
}
|