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

时间:2015-03-25 16:28:15

标签: ios swift

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

例如“鲍勃很高” 我想要“Bob Is Tall”

肯定有一些东西,我找到的Swift IOS答案似乎都没有涵盖这个。

8 个答案:

答案 0 :(得分:40)

您在寻找capitalizedString

吗?
  

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

和/或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)

Older Thread

答案 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