如何在Swift连接字符串?

在Objective-C中

NSString *string = @"Swift";
NSString *resultStr = [string stringByAppendingString:@" is a new Programming Language"];

or

NSString *resultStr=[NSString stringWithFormat:@"%@ is a new Programming Language",string];

但我想用swift语言来写。


当前回答

我刚从Objective-C切换到Swift(4),我发现我经常使用:

let allWords = String(format:"%@ %@ %@",message.body!, message.subject!, message.senderName!)

其他回答

你可以通过以下方式添加字符串:

str += “” str = str + “” str = str + str2 str = “” + “” str = “\(变量)” str = str + “\(变量)”

我想我把它们都叫出来了。

你也可以在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

你现在可以在Swift中使用stringByAppendingString。

var string = "Swift"
var resultString = string.stringByAppendingString(" is new Programming Language")

来自:Matt Neuburg书“iOS 13编程基础与Swift。”:

要组合(连接)两个字符串,最简单的方法是使用+运算符:

let s = "hello"
let s2 = " world"
let greeting = s + s2

这种方便的表示法是可能的,因为+操作符是重载的:当操作数是数字(数字加法)时它做一件事,当操作数是字符串(连接)时它做另一件事。 +操作符带有+=赋值快捷键;当然,左边的变量必须用var声明:

var s = "hello"
let s2 = " world"
s += s2

作为+=的替代方法,你可以调用append(_:)实例方法:

var s = "hello"
let s2 = " world"
s.append(s2)

连接字符串的另一种方法是使用joined(separator:)方法。你从一个要连接的字符串数组开始,并把要插入所有字符串之间的字符串交给它:

let s = "hello"
let s2 = "world"
let space = " "
let greeting = [s,s2].joined(separator:space)

你可以用多种方式连接字符串:

let a = "Hello"
let b = "World"

let first = a + ", " + b
let second = "\(a), \(b)"

你还可以:

var c = "Hello"
c += ", World"

我相信还有更多的方法。

稍微描述一下

创建一个常数。(有点像NSString)。一旦你设置了它,你就不能改变它的值。你仍然可以把它添加到其他东西,并创建新的变量。

Var创建一个变量。(有点像NSMutableString)所以你可以改变它的值。但是这个问题在Stack Overflow上已经被回答了几次(参见let和var之间的区别)。

Note

实际上,let和var与NSString和NSMutableString非常不同,但它有助于类比。