我正在尝试制作一个自动更正系统,当用户输入一个大写字母的单词时,自动更正不起作用。为了解决这个问题,我复制了键入的字符串,应用了. lowercasestring,然后比较它们。如果字符串确实输入错误,则应该更正单词。然而,取而代之的单词都是小写的。所以我需要对第一个字母应用. uppercasestring。我本来觉得我可以用
nameOfString[0]
但这显然行不通。我怎么能得到字符串的第一个字母大写,然后能够打印完整的字符串与第一个字母大写?
谢谢你的帮助!
我正在尝试制作一个自动更正系统,当用户输入一个大写字母的单词时,自动更正不起作用。为了解决这个问题,我复制了键入的字符串,应用了. lowercasestring,然后比较它们。如果字符串确实输入错误,则应该更正单词。然而,取而代之的单词都是小写的。所以我需要对第一个字母应用. uppercasestring。我本来觉得我可以用
nameOfString[0]
但这显然行不通。我怎么能得到字符串的第一个字母大写,然后能够打印完整的字符串与第一个字母大写?
谢谢你的帮助!
当前回答
我用柯尔斯泰因斯解得到了第一个复制的字符。这将大写第一个字符,不会看到双字符:
var s: String = "hello world"
s = prefix(s, 1).capitalizedString + suffix(s, countElements(s) - 1)
我不知道它的效率是高还是低,我只知道它给了我想要的结果。
其他回答
Swift 3 (xcode 8.3.3)
大写字符串的所有首字符
let str = "your string"
let capStr = str.capitalized
//Your String
全部大写
let str = "your string"
let upStr = str.uppercased()
//YOUR STRING
字符串的第一个字符只能大写
var str = "your string"
let capStr = String(str.characters.prefix(1)).uppercased() + String(str.characters.dropFirst())
//Your string
编辑:这不再适用于文本,现在只支持输入字段。
以防有人以同样的问题结束这里关于SwiftUI:
// Mystring is here
TextField("mystring is here")
.autocapitalization(.sentences)
// Mystring Is Here
Text("mystring is here")
.autocapitalization(.words)
extension String {
var lowercased:String {
var result = Array<Character>(self.characters);
if let first = result.first { result[0] = Character(String(first).uppercaseString) }
return String(result)
}
}
Swift 2.0(单行):
String(nameOfString.characters.prefix(1)).uppercaseString + String(nameOfString.characters.dropFirst())
对于单词使用中的第一个字符。在swift中大写,对于整个单词使用。大写()