web-dev-qa-db-ger.com

Wie verkette ich Strings in Swift?

Wie verkette ich einen String in Swift?

In Objective-C gefällt uns

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

oder

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

Aber ich möchte das in Swift tun.

167
Rajneesh071

Sie können Strings auf verschiedene Arten verketten:

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

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

Sie könnten auch tun:

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

Ich bin sicher, es gibt auch mehr Möglichkeiten.

Bit der Beschreibung

let erstellt eine Konstante. (wie eine NSString). Sie können den Wert nicht mehr ändern, wenn Sie ihn festgelegt haben. Sie können es dennoch anderen Dingen hinzufügen und neue Variablen erstellen.

var erstellt eine Variable. (wie NSMutableString), damit Sie den Wert ändern können. Dies wurde jedoch mehrmals beim Stack Overflow beantwortet (siehe Unterschied zwischen let und var).

Hinweis

In Wirklichkeit sind let und varsehr verschieden von NSString und NSMutableString, aber es hilft der Analogie.

303
Fogmeister

Sie können eine Zeichenfolge folgendermaßen hinzufügen:

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

Ich glaube, ich habe sie alle benannt.

59
Arbitur
var language = "Swift" 
var resultStr = "\(language) is new Programming Language"
28
yoeriboven

Das wird auch funktionieren:

var string = "Swift"
var resultStr = string + " is a new Programming Language"
12
CW0007007

\ Damit wird eine Zeichenfolge an eine andere Zeichenfolge angehängt.

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

Sie können dies auch versuchen: - + Schlüsselwort.

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

Versuchen Sie diesen Code.

11
Jitendra
let the_string = "Swift"
let resultString = "\(the_string) is a new Programming Language"
10
Bagvendt

Sehr einfach:

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

Sie können jetzt stringByAppendingString in Swift verwenden.

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

XCode akzeptierte keine optionalen Zeichenfolgen, die mit einer normalen Zeichenfolge hinzugefügt wurden. Ich habe diese Erweiterungen geschrieben, um dieses Problem zu lösen:

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

Dann kannst du es so nennen:

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

Du könntest jetzt aber auch so etwas machen:

var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1! += str2
5
Esqarrouth

Es wird als String Interpolation ..__ bezeichnet. Es ist eine Möglichkeit, NEUE Zeichenfolge mit CONSTANTS, VARIABLE, LITERALS und EXPRESSIONS ..__ zu erstellen. zum Beispiel:

      let price = 3
      let staringValue = "The price of \(price) mangoes is equal to \(price*price) "

ebenfalls 

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"

es bedeutet auch das Verketten von String-Werten.

Hoffe das hilft dir. 

4
Anil Gupta

In Swift kann auch stringByAppendingFormat verwendet werden.

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
3
Pushpa

So drucken Sie die kombinierte Zeichenfolge mit 

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

oder String3 speichert die Ausgabe einer Kombination aus zwei Zeichenfolgen

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

Sie können dazu SwiftString ( https://github.com/amayne/SwiftString ) verwenden.

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

HAFTUNGSAUSSCHLUSS: Ich habe diese Erweiterung geschrieben

2
eurobrew

Ich habe gerade von Objective-C zu Swift (4) gewechselt und finde, dass ich häufig verwende:

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

In Swift 5 Apple werden Raw Strings mit # -Symbolen eingeführt.

Beispiel:

print(#"My name is "XXX" and I'm "28"."#)
let name = "XXX"
print(#"My name is \#(name)."#)

nach\ist das Symbol # erforderlich. Ein regulärer\(Name) wird als Zeichen in der Zeichenfolge interpretiert.

0
Yogendra Singh

Schnell 4.2

Sie können auch eine Erweiterung verwenden:

extension Array where Element == String? {
    func compactConcate(separator: String) -> String {
        return self.compactMap { $0 }.filter { !$0.isEmpty }.joined(separator: separator)
    }
}

Benutzen:

label.text = [m.firstName, m.lastName].compactConcate(separator: " ")

Ergebnis:

"The Man"
"The"
"Man"
0
Nik Kov