Hoe tekenreeks samenvoegen in Swift?
In Objective-C
houden 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
let
creë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.
var
maakt 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 let
en var
heel verschillendvan NSString
en NSMutableString
maar 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 appending
API. 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.