如何在Swift中连接字符串?

问题描述 投票:170回答:15

如何在Swift中连接字符串?

Objective-C我们喜欢

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

要么

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

但是我想用Swift语言做这件事。

string swift concat string-concatenation
15个回答
308
投票

您可以通过多种方式连接字符串:

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)。

注意

实际上letvarNSStringNSMutableString非常不同,但它有助于类比。


4
投票

它被称为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"

它也意味着连接字符串值。

希望这对你有所帮助。


3
投票

使用打印组合字符串

Println("\(string1)\(string2)")

或String3存储2个字符串组合的输出

let strin3 = "\(string1)\(string2)"

3
投票

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

2
投票

您可以使用SwiftString(https://github.com/amayne/SwiftString)来执行此操作。

"".join(["string1", "string2", "string3"]) // "string1string2string"
" ".join(["hello", "world"]) // "hello world"

免责声明:我写了这个扩展名


0
投票

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

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

0
投票

Swift 4.2

您还可以使用扩展程序:

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"

56
投票

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

  • str += ""
  • str = str + ""
  • str = str + str2
  • str = "" + ""
  • str = "\(variable)"
  • str = str + "\(variable)"

我想我把它们都命名了。


28
投票
var language = "Swift" 
var resultStr = "\(language) is new Programming Language"

12
投票

这也可以:

var string = "swift"
var resultStr = string + " is a new Programming Language"

11
投票

\这用于将一个字符串附加到另一个字符串。

var first = "Hi" 
var combineStr = "\(first) Start develop app for swift"

您也可以尝试: - +关键字。

 var first = "Hi" 
 var combineStr = "+(first) Start develop app for swift"

试试这个代码。


10
投票
let the_string = "Swift"
let resultString = "\(the_string) is a new Programming Language"

9
投票

非常简单:

let StringA = "Hello"
let StringB = "World"
let ResultString = "\(StringA)\(StringB)"
println("Concatenated result = \(ResultString)")

9
投票

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

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

5
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.