Hoe voeg ik strings samen in Swift?

Hoe tekenreeks samenvoegen in Swift?

In Objective-Chouden we wel van

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

of

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

Maar ik wil dit in Swift-taal doen.


Antwoord 1, autoriteit 100%

Je kunt strings op een aantal manieren samenvoegen:

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

Je zou ook kunnen doen:

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

Ik weet zeker dat er ook meer manieren zijn.

Beetje beschrijving

letcreëert een constante. (een soort van NSString). U kunt de waarde niet meer wijzigen als u deze eenmaal hebt ingesteld. Je kunt het echter nog steeds aan andere dingen toevoegen en nieuwe variabelen maken.

varmaakt een variabele aan. (een soort van NSMutableString) zodat je de waarde ervan kunt wijzigen. Maar dit is meerdere keren beantwoord op Stack Overflow, (zie verschil tussen let en var) .

Opmerking

In werkelijkheid zijn leten varheel verschillendvan NSStringen NSMutableStringmaar het helpt de analogie.


Antwoord 2, autoriteit 19%

Je kunt op de volgende manieren een string toevoegen:

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

Ik denk dat ik ze allemaal een naam heb gegeven.


Antwoord 3, autoriteit 10%

var language = "Swift" 
var resultStr = "\(language) is a new programming language"

Antwoord 4, autoriteit 4%

Dit werkt ook:

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

Antwoord 5, autoriteit 3%

\ dit wordt gebruikt om een ​​string aan een andere string toe te voegen.

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

U kunt dit ook proberen:- + trefwoord.

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

Probeer deze code.


Antwoord 6, autoriteit 3%

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

Antwoord 7, autoriteit 3%

Heel eenvoudig:

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

Antwoord 8, autoriteit 3%

Je kunt nu stringByAppendingStringgebruiken in Swift.

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

Antwoord 9

Xcode accepteerde geen optionele tekenreeksen die zijn toegevoegd met een normale tekenreeks. Ik heb deze extensies geschreven om dat probleem op te lossen:

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

Dan kun je het zo noemen:

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

U kunt nu echter ook zoiets als dit doen:

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

Antwoord 10

Het wordt String Interpolation genoemd.
Het is een manier om NIEUWE strings te creëren met CONSTANTS, VARIABLE, LITERALS en EXPRESSIONS.
voor voorbeelden:

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

ook

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"

het betekent ook het aaneenschakelen van tekenreekswaarden.

Ik hoop dat dit je helpt.


Antwoord 11

Ik ben net overgestapt van Objective-C naar Swift (4), en ik merk dat ik vaak gebruik:

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

Antwoord 12

Om de gecombineerde string af te drukken met

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

of String3 slaat de uitvoer van een combinatie van 2 strings op

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

Antwoord 13

Je kunt stringByAppendingFormat ook gebruiken in Swift.

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

Antwoord 14

Swift 5

U kunt dit bereiken met behulp van de appendingAPI. Dit retourneert een nieuwe string die is gemaakt door een gegeven string aan de ontvanger toe te voegen.

API-details: hier

Gebruik:

var text = "Hello"
text = text.appending(" Namaste")

Resultaat:

Hello
Hello Namaste

Antwoord 15

Swift 4.2

U kunt ook een extensie gebruiken:

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

Gebruik:

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

Resultaat:

"The Man"
"The"
"Man"

Antwoord 16

Swift 5:

Array van strings in een enkele string

let array = ["Ramana","Meharshi","Awareness","Oneness","Enlightnment","Nothing"]
let joined = array.joined(separator: ",")

Antwoord 17

In Swift 5 heeft Apple Raw Strings geïntroduceerd met # symbolen.

Voorbeeld:

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

symbool # is nodig na \. Een gewone \(naam) wordt geïnterpreteerd als tekens in de tekenreeks.

Other episodes