如何在Swift中连接字符串?
在Objective-C
我们喜欢
NSString *string = @"Swift";
NSString *resultStr = [string stringByAppendingString:@" is new Programming Language"];
要么
NSString *resultStr=[NSString stringWithFormat:@"%@ is new Programming Language",string];
但是我想用Swift语言做这件事。
您可以通过多种方式连接字符串:
let a = "Hello"
let b = "World"
let first = a + ", " + b
let second = "\(a), \(b)"
你也可以这样做:
var c = "Hello"
c += ", World"
我相信还有更多方法。
一点描述
let
创造了一个常数。 (有点像NSString
)。设置后,您无法更改其值。您仍然可以将其添加到其他内容并创建新变量。
var
创建了一个变量。 (有点像NSMutableString
)所以你可以改变它的价值。但是Stack Overflow已经多次回答了这个问题(参见difference between let and var)。
注意
实际上let
和var
与NSString
和NSMutableString
非常不同,但它有助于类比。
它被称为String Interpolation。它是使用CONSTANTS,VARIABLE,LITERALS和EXPRESSIONS创建NEW字符串的方法。举些例子:
let price = 3
let staringValue = "The price of \(price) mangoes is equal to \(price*price) "
也
let string1 = "anil"
let string2 = "gupta"
let fullName = string1 + string2 // fullName is equal to "anilgupta"
or
let fullName = "\(string1)\(string2)" // fullName is equal to "anilgupta"
它也意味着连接字符串值。
希望这对你有所帮助。
使用打印组合字符串
Println("\(string1)\(string2)")
或String3存储2个字符串组合的输出
let strin3 = "\(string1)\(string2)"
也可以在Swift中使用stringByAppendingFormat。
var finalString : NSString = NSString(string: "Hello")
finalString = finalString.stringByAppendingFormat("%@", " World")
print(finalString) //Output:- Hello World
finalString = finalString.stringByAppendingFormat("%@", " Of People")
print(finalString) //Output:- Hello World Of People
您可以使用SwiftString(https://github.com/amayne/SwiftString)来执行此操作。
"".join(["string1", "string2", "string3"]) // "string1string2string"
" ".join(["hello", "world"]) // "hello world"
免责声明:我写了这个扩展名
我刚刚从Objective-C切换到Swift(4),我发现我经常使用:
let allWords = String(format:"%@ %@ %@",message.body!, message.subject!, message.senderName!)
您还可以使用扩展程序:
extension Array where Element == String? {
func compactConcate(separator: String) -> String {
return self.compactMap { $0 }.filter { !$0.isEmpty }.joined(separator: separator)
}
}
使用:
label.text = [m.firstName, m.lastName].compactConcate(separator: " ")
结果:
"The Man"
"The"
"Man"
您可以通过以下方式添加字符串:
str += ""
str = str + ""
str = str + str2
str = "" + ""
str = "\(variable)"
str = str + "\(variable)"
我想我把它们都命名了。
var language = "Swift"
var resultStr = "\(language) is new Programming Language"
这也可以:
var string = "swift"
var resultStr = string + " is a new Programming Language"
\这用于将一个字符串附加到另一个字符串。
var first = "Hi"
var combineStr = "\(first) Start develop app for swift"
您也可以尝试: - +关键字。
var first = "Hi"
var combineStr = "+(first) Start develop app for swift"
试试这个代码。
let the_string = "Swift"
let resultString = "\(the_string) is a new Programming Language"
非常简单:
let StringA = "Hello"
let StringB = "World"
let ResultString = "\(StringA)\(StringB)"
println("Concatenated result = \(ResultString)")
您现在可以在Swift中使用stringByAppendingString。
var string = "Swift"
var resultString = string.stringByAppendingString(" is new Programming Language")
XCode不接受使用普通字符串添加的可选字符串。我写了这个扩展来解决这个问题:
extension String {
mutating func addString(str: String) {
self = self + str
}
}
然后你可以这样称呼它:
var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1.addString(str2)
println(str1) //hi my name is
但是你现在也可以这样做:
var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1! += str2