String in Swift anhängen

74

Ich bin neu in iOS. Ich studiere derzeit iOS mit Objective-C und Swift.

Um eine Zeichenfolge in Objective-C anzuhängen, verwende ich folgenden Code:

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

Jemand bitte führt mich.

jluckyiv
quelle
1
Wenn Sie sowohl mit Objective C als auch mit Swift in iOS völlig neu sind, würde ich möglicherweise eines auswählen, mit dem Sie sich vertraut machen möchten, bevor Sie es in das andere erweitern. Ich möchte nicht zu schnell zu viel übernehmen. Alles über Strings in Swift, einschließlich Anhängen, finden Sie unter developer.apple.com/library/prerelease/ios/documentation/swift/…
biddulph.r

Antworten:

114

Es ist sehr einfach:

Für ObjC:

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

ForSwift:

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

Für ObjC AppendString:

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

Für Swift AppendString:

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

Ergebnis:

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

Vollständiger Code in 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)")
PREMKUMAR
quelle
1
In ObjC gibt es auchappendString2 = [string1 stringByAppendingString: string2];
JeremyP
Danke, Kumpel. All diese Änderungen von Obj-C zu Swift bringen die Dinge durcheinander.
Felipe
Es ist erwähnenswert, dass die Verwendung des Stils in mit den mehr Zeichenfolgen, die Sie gleichzeitig anhängen, appendString1viel performanter ist als die Verkettung ( appendString2).
Connor
Vielen Dank. Das hat mir Zeit gespart.
ssowri1
17

In Swift ist das Anhängen von Zeichenfolgen so einfach wie:

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

Oder Sie können die Zeichenfolgeninterpolation verwenden.

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

Beachten Sie, dass zwischen ihnen jetzt Leerzeichen stehen.

Hinweis: Ich sehe, dass die anderen Antworten varviel verwenden. Die Zeichenfolgen ändern sich nicht und sollten daher mit deklariert werden let. Ich weiß, dass dies eine kleine Übung ist, aber es ist gut, sich an bewährte Praktiken zu gewöhnen. Vor allem, weil das ein großes Merkmal von Swift ist.

Isaac Drachman
quelle
8
let string2 = " there"
var instruction = "look over"

Wahl 1:

 instruction += string2;

  println(instruction)

Wahl 2:

 var Str = instruction + string2;

 println(Str)

ref dies

Anbu.Karthik
quelle
7

Fügen Sie diese Erweiterung irgendwo hinzu:

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

Dann können Sie es so nennen:

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

Viele gute Swift-Erweiterungen wie diese befinden sich in meinem Repo hier. Schauen Sie sich diese an: https://github.com/goktugyil/EZSwiftExtensions

Esqarrouth
quelle
Sollte die 3. Zeile nicht var str1.addString (str2) sein
El Tomato
5

Sie können einfach eine Zeichenfolge anhängen wie:

var worldArg = "world is good"

worldArg += " to live";
Saurav Nagpal
quelle
3
var string1 = "This is ";
var string2 = "Swift Language";
var appendString = string1 + string2;
println("APPEND STRING: \(appendString)");
nicael
quelle
2

Gemäß der Swift 4-Dokumentation können String-Werte zusammen mit dem Additionsoperator (+) addiert (oder verkettet) werden, um einen neuen String-Wert zu erstellen:

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

Sie können einen String-Wert auch mit dem Additionszuweisungsoperator (+ =) an eine vorhandene String-Variable anhängen:

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

Sie können einen Zeichenwert mit der append () -Methode des String-Typs an eine String-Variable anhängen:

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

> Swift2.x :

String("hello ").stringByAppendingString("world") // hello world
Melvin
quelle
0

Zeichenfolgen verketten sich in der Swift-Sprache.

let string1 = "one"

let string2 = "zwei"

var concate = "(string1) (string2)"

Playgroud-Ausgabe ist "eins zwei"

Shanmugasundharam
quelle
0

In der akzeptierten Antwort PREMKUMAR gibt es einige Fehler in seinem vollständigen Code in der Swift-Antwort. Der erste Druck sollte lesen (appendString) und der zweite Druck sollte lesen (appendString1). Außerdem ist der aktualisierte Druck in Swift 2.0 veraltet

Seine

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

Korrigiert

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

SWIFT 2.x.

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

SWIFT 3.0

Aus der Dokumentation: "Mit der append () -Methode des String-Typs können Sie einen Zeichenwert an eine String-Variable anhängen:" Daher können wir append nicht für Strings verwenden.

urlString += "&requireslogin=true"

Der Operator "+" funktioniert in beiden Versionen

let extendedURLString = urlString+"&requireslogin=true"
Ilker Baltaci
quelle
0
let firstname = "paresh"
let lastname = "hirpara"
let itsme = "\(firstname) \(lastname)"
Paresh Hirpara
quelle