由于Swift中的Strings不再具有.uppercaseString或.lowercaseString属性,我将如何执行该功能?
如果我有例如:
var sillyString = "This is a string!"
let yellyString = sillyString.uppercaseString
let silentString = sillyString.lowercaseString
我想取sillyString并将其变为大写或小写。我现在该怎么做呢?
提前致谢!
答案 0 :(得分:109)
String
与NSString
无缝桥接,只要您{{>> <{1}}和uppercaseString
属性 1}} (或几乎任何框架,因为他们通常lowercaseString
内部。来自Swift编程指南的Strings and Characters section:
Swift的String类型与Foundation的NSString无缝桥接 类。如果您正在使用Cocoa中的Foundation框架 Cocoa Touch,整个NSString API可以调用任何 除了描述的String功能外,您创建的字符串值 在这一章当中。您还可以将String值与任何API一起使用 需要一个NSString实例。
正如@newacct指出的那样,在Xcode 6.1 / Swift 1.1中,import Foundation
和import Foundation
在Swift的uppercaseString
课程,所以你不要#39; t需要使用lowercaseString
中定义的那些。但是,它已作为String
框架中NSString
类的扩展实现,因此解决方案仍然相同:String
在操场上:
Foundation
在操场上:
import Foundation
答案 1 :(得分:76)
Swift 3中的新名称使用-ed
后缀来表示uppercased()
和lowercased()
返回副本而不是修改原件:
import Foundation
let title = "Castration: The Advantages and the Disadvantages" // Don't `var` unless you have to!
title.uppercased() // "CASTRATION: THE ADVANTAGES AND THE DISADVANTAGES"
title.lowercased() // "castration: the advantages and the disadvantages"
title.capitalized // "Castration: The Advantages And The Disadvantages"
注意奇数差异,其中uppercased()和lowercased()是函数,而大写是一个属性。这似乎是一种疏忽,在这种情况下,希望有一些对快速进化过程感到满意的人会在3.0离开beta之前进行修正。
如果您知道自己正在使用NSString,则 属于所有三个属性:
NSString(string: "abcd").uppercased
NSString(string: "ABCD").lowercased
NSString(string: "abCd").capitalized
上述方法将整个方法委派字符串隐藏为NSString和CFString,默认语言环境为nil。这大部分时间都有效。至少,它用英语。事实上,我并不完全理解我要从操场上粘贴的剩余部分。
let turkishI = "\u{0130} is not I" // "İ is not I"
turkishI.uppercased() // "İ IS NOT I"
turkishI.uppercased(with: Locale(identifier: "en")) // "İ IS NOT I"
turkishI.uppercased(with: Locale(identifier: "tr")) // "İ İS NOT I"
turkishI.lowercased() // "i̇ is not i"
turkishI.capitalized // "İ Is Not I"
turkishI.lowercased(with: Locale(identifier: "en")) // "i̇ is not i"
turkishI.lowercased(with: Locale(identifier: "tr")) // "i is not ı"
Locale初始值设定项在Swift 3中的参数名称稍长......
turkishI.uppercased(with: Locale(localeIdentifier: "en"))
"✈️".uppercased() // (Swift 4)
"✈️".uppercased() // (Swift 5)
答案 2 :(得分:13)
uppercaseString
上的lowercaseString
和String
属性不再位于Swift标准库中。相反,Foundation
现在提供它们。所以你必须
import Foundation
使用它。
答案 3 :(得分:0)
来自Apple Docs for Xcode8 / Swift3的功能:
/// Returns a lowercase version of the string. /// /// Here's an example of transforming a string to all lowercase letters. /// /// let cafe = "Café " /// print(cafe.lowercased()) /// // Prints "café " /// /// - Returns: A lowercase copy of the string. /// /// - Complexity: O(*n*) public func lowercased() -> String
答案 4 :(得分:0)
SwiftUI中将字符串大写的解决方案
Text("Hello World!".uppercased())
输出为:“ HELLO WORLD!”
要小写字符串,只需使用此
Text("Hello World!".lowercased())
输出为:“你好,世界!”