使用 Swift 4 ,如何使用这些规则设置字符串格式:
如果单词长于3个字母,则将其首字母大写, 否则为大写
包含连字符的Pascal大小写单词,如St-Michel
我在这里有初稿,但我坚持如何解决第二点。另外,目前我在不应该在结尾处添加一个空格。
var pascalCase: String {
return self.components(separatedBy: " ")
.map {
if $0.count > 3 {
return $0.uppercased()
} else {
return $0.lowercased().capitalizingFirstLetter()
}
}
.map { return $0 + " " }
.joined()
}
答案 0 :(得分:2)
假设我对您的要求正确无误,那么可以这样做:
extension String {
var pascalCase: String {
return self.components(separatedBy: " ")
.map {
if $0.count <= 3 {
return $0.uppercased()
} else {
if $0.index(of: "-") != nil {
return $0.components(separatedBy: "-").map { $0.pascalCase }.joined(separator: "-")
} else {
return $0.capitalized
}
}
}
.joined(separator: " ")
}
}
print("hello".pascalCase)
print("hi".pascalCase)
print("this is fun".pascalCase)
print("st-michael".pascalCase)
结果:
你好
HI
这很有趣
圣迈克尔