如何使用Swift iOS大写字符串中的每个单词

Chr*_*ley 35 ios swift

是否有一个函数来大写字符串中的每个单词或这是一个手动过程?

例如"bob很高"我想要"Bob Is Tall"

当然有一些东西,没有一个我发现的Swift IOS答案似乎涵盖了这一点.

Jam*_*ter 48

你在找吗? capitalizedString

讨论
将每个单词中第一个字符的字符串更改为其对应的大写值,并将所有剩余字符设置为相应的小写值.

和/或 capitalizedStringWithLocale(_:)

使用指定的语言环境返回接收者的大写表示.

对于呈现给用户的字符串,传递当前语言环境([NSLocale currentLocale]).要使用系统区域设置,请传递nil.

  • 谢谢。事实证明,Apple 文档中的 swift 示例打错了字,这让我陷入了循环(比喻性的)。 (2认同)

Jos*_*nor 18

斯威夫特3:

var lowercased = "hello there"

var stringCapitalized = lowercased.capitalized
//prints:  "Hello There"
Run Code Online (Sandbox Code Playgroud)


Evg*_*nii 16

从iOS 9开始,可以使用本地化的大写功能,因为大写字母可能在语言上有所不同.

if #available(iOS 9.0, *) {
  "istanbul".localizedCapitalizedString
  // In Turkish: "?stanbul"
}
Run Code Online (Sandbox Code Playgroud)

  • 对于 Swift,它是 `localizedCapitalized`,对于 ObjC,它是 `localizedCapitalizedString`。 (2认同)

Chr*_*ley 11

上面提供的答案的一个例子.

   var sentenceToCap = "this is a sentence."
println(sentenceToCap.capitalizedStringWithLocale(NSLocale.currentLocale())  )
Run Code Online (Sandbox Code Playgroud)

最终结果是一个字符串"This Is A Sentence"


Nar*_*ail 8

对于Swift 3,它已被更改为capitalized.

讨论
此属性执行规范(非本地化)映射.它适用于需要稳定结果而不依赖于当前区域设置的编程操作.大写字符串是一个字符串,每个单词中的第一个字符更改为其对应的大写值,并且所有剩余字符都设置为其对应的小写值."单词"是由空格,制表符或行终止符分隔的任何字符序列(在getLineStart(_:end:contentsEnd:for :)下列出).不考虑一些常用的分隔标点符号,因此该属性通常不会产生多字符串的期望结果.不保证大小写转换是对称的,或者产生与原件长度相同的字符串.有关示例,请参阅小写.


chi*_*g90 5

有一个内置的功能

nameOfString.capitalizedString
Run Code Online (Sandbox Code Playgroud)

这将大写字符串的每个单词。要仅将首字母大写,可以使用:

nameOfString.replaceRange(nameOfString.startIndex...nameOfString.startIndex, with: String(nameOfString[nameOfString.startIndex]).capitalizedString)
Run Code Online (Sandbox Code Playgroud)

旧线程