在Swift中附加字符串


74

我是iOS新手。我目前正在使用Objective-C和Swift学习iOS。

要在Objective-C中附加字符串,我使用以下代码:

 NSString *string1 = @"This is";
 NSString *string2 = @"Swift Language";
 NSString *appendString=[NSString stringWithFormat:@"%@ %@",string1,string2];
 NSLog(@"APPEND STRING:%@",appendString);

有人请引导我。


1
如果您是iOS中的Objective C和Swift的新手,我可能会选择一个熟悉然后再扩展到另一个。不想太快地采取行动。可以在developer.apple.com/library/prerelease/ios/documentation/swift/…
附录

Answers:


114

非常简单:

对于ObjC:

     NSString *string1 = @"This is";
     NSString *string2 = @"Swift Language";

ForSwift:

    let string1 = "This is"
    let string2 = "Swift Language"

对于ObjC AppendString:

     NSString *appendString=[NSString stringWithFormat:@"%@ %@",string1,string2];

对于Swift AppendString:

    var appendString1 = "\(string1) \(string2)"
    var appendString2 = string1+string2

结果:

    print("APPEND STRING 1:\(appendString1)")
    print("APPEND STRING 2:\(appendString2)")

在Swift中完成代码:

    let string1 = "This is"
    let string2 = "Swift Language"
    var appendString = "\(string1) \(string2)"
    var appendString1 = string1+string2
    print("APPEND STRING1:\(appendString1)")
    print("APPEND STRING2:\(appendString2)")

1
在ObjC中还有appendString2 = [string1 stringByAppendingString: string2];
JeremyP

谢了哥们。从Obj-C到Swift的所有更改都弄糟了。
费利佩2015年

值得一提的是,随着您一次添加更多的字符串,使用in样式appendString1比连接(appendString2)可获得更高的性能。
康纳·内维尔

谢谢。它节省了我的时间。
ssowri1

18

在Swift中,附加字符串很简单:

let stringA = "this is a string"
let stringB = "this is also a string"
let stringC = stringA + stringB

或者,您可以使用字符串插值。

let stringC = "\(stringA) \(stringB)"

注意,它们之间现在将有空白。

注意:我看到其他答案正在var大量使用。字符串没有变化,因此应使用声明let。我知道这是一个小练习,但是养成最佳做法的习惯是很好的。特别是因为这是Swift的一大特色。


8
let string2 = " there"
var instruction = "look over"

选择1:

 instruction += string2;

  println(instruction)

选择2:

 var Str = instruction + string2;

 println(Str)

引用这个


7

将此扩展添加到某处:

extension String {
    mutating func addString(str: String) {
        self = self + str
    }
}

然后您可以这样称呼它:

var str1 = "hi"
var str2 = " my name is"
str1.addString(str2)
println(str1) //hi my name is

我的仓库中有很多类似这样的优秀Swift扩展,请查看它们:https : //github.com/goktugyil/EZSwiftExtensions


第三行不应该是var str1.addString(str2)
El Tomato


3
var string1 = "This is ";
var string2 = "Swift Language";
var appendString = string1 + string2;
println("APPEND STRING: \(appendString)");

3

根据Swift 4文档,可以将字符串值与加法运算符(+)一起添加(或串联)以创建新的字符串值:

let string1 = "hello"
let string2 = " there"
var welcome = string1 + string2
// welcome now equals "hello there"

您还可以使用附加赋值运算符(+ =)将String值附加到现有的String变量中:

var instruction = "look over"
instruction += string2
// instruction now equals "look over there"

您可以使用String类型的append()方法将Character值附加到String变量:

let exclamationMark: Character = "!"
welcome.append(exclamationMark)
// welcome now equals "hello there!"

1

> Swift2.x

String("hello ").stringByAppendingString("world") // hello world

0

字符串以Swift语言连接。

让string1 =“一个”

让string2 =“两个”

var concate =“(string1)(string2)”

playgroud输出为“一二”


0

在接受的答案PREMKUMAR中,他在Swift答案中的完整代码中有几个错误。第一次打印应读取(appendString),第二次打印应读取(appendString1)。另外,在Swift 2.0中不建议使用更新的println

他的

let string1 = "This is"
let string2 = "Swift Language"
var appendString = "\(string1) \(string2)"
var appendString1 = string1+string2
println("APPEND STRING1:\(appendString1)")
println("APPEND STRING2:\(appendString2)")

已更正

let string1 = "This is"
let string2 = "Swift Language"
var appendString = "\(string1) \(string2)"
var appendString1 = string1+string2
print("APPEND STRING:\(appendString)")
print("APPEND STRING1:\(appendString1)")

0

SWIFT 2.x

let extendedURLString = urlString.stringByAppendingString("&requireslogin=true")

SWIFT 3.0

在文档中: “您可以使用String类型的append()方法将Character值追加到String变量:”,因此我们不能对字符串使用append。

urlString += "&requireslogin=true"

“ +”运算符在两个版本中均适用

let extendedURLString = urlString+"&requireslogin=true"

0
let firstname = "paresh"
let lastname = "hirpara"
let itsme = "\(firstname) \(lastname)"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.