是否有一个函数来大写字符串中的每个单词或者这是一个手动过程?
例如“鲍勃很高” 我想要“Bob Is Tall”
肯定有一些东西,我找到的Swift IOS答案似乎都没有涵盖这个。
答案 0 :(得分:40)
<强>讨论强>
每个单词中第一个字符的字符串更改为其对应的大写值,并将所有剩余字符设置为相应的小写值。
和/或capitalizedStringWithLocale(_:)
使用指定的语言环境返回接收者的大写表示。
对于呈现给用户的字符串,传递当前语言环境([NSLocale currentLocale])。要使用系统区域设置,请传递nil。
答案 1 :(得分:14)
自iOS 9起,本地化大写功能可用,因为大写字母可能因语言不同而不同。
if #available(iOS 9.0, *) {
"istanbul".localizedCapitalizedString
// In Turkish: "İstanbul"
}
答案 2 :(得分:14)
斯威夫特3:
var lowercased = "hello there"
var stringCapitalized = lowercased.capitalized
//prints: "Hello There"
答案 3 :(得分:11)
上面提供的答案的一个例子。
var sentenceToCap = "this is a sentence."
println(sentenceToCap.capitalizedStringWithLocale(NSLocale.currentLocale()) )
最终结果是一个字符串“This Is A Sentence”
答案 4 :(得分:8)
对于 Swift 3 ,它已更改为capitalized
。
<强>讨论强>
此属性执行规范(非本地化)映射。它适用于需要稳定结果而不依赖于当前区域设置的编程操作。 大写字符串是一个字符串,每个单词中的第一个字符更改为相应的大写值,所有剩余字符设置为相应的小写值。 “单词”是由空格,制表符或行终止符分隔的任何字符序列(在getLineStart(_:end:contentsEnd:for :)下列出)。不考虑一些常用的分隔标点符号,因此该属性通常不会产生多字符串的期望结果。 不保证大小写转换是对称的,或者产生与原件长度相同的字符串。有关示例,请参阅小写。
答案 5 :(得分:4)
有一个内置功能
nameOfString.capitalizedString
这将大写字符串的每个单词。要仅使用您可以使用的第一个字母:
nameOfString.replaceRange(nameOfString.startIndex...nameOfString.startIndex, with: String(nameOfString[nameOfString.startIndex]).capitalizedString)
答案 6 :(得分:0)
我提出的这似乎有用,但我对任何更好的事情持开放态度。
func firstCharacterUpperCase(sentenceToCap:String) -> String {
//break it into an array by delimiting the sentence using a space
var breakupSentence = sentenceToCap.componentsSeparatedByString(" ")
var newSentence = ""
//Loop the array and concatinate the capitalized word into a variable.
for wordInSentence in breakupSentence {
newSentence = "\(newSentence) \(wordInSentence.capitalizedString)"
}
// send it back up.
return newSentence
}
或者如果我想将它用作字符串类的扩展名。
extension String {
var capitalizeEachWord:String {
//break it into an array by delimiting the sentence using a space
var breakupSentence = self.componentsSeparatedByString(" ")
var newSentence = ""
//Loop the array and concatinate the capitalized word into a variable.
for wordInSentence in breakupSentence {
newSentence = "\(newSentence) \(wordInSentence.capitalizedString)"
}
// send it back up.
return newSentence
}
}
同样,欢迎任何更好的事情。
答案 7 :(得分:0)
Swift 5 版本的 Christopher Wade's answer
let str = "my string"
str.capitalized(with: NSLocale.current)
print(str) // prints My String