¿Cómo concateno cadenas en Swift?

Cómo concatenar cadena en Swift?

En Objective-C nos gusta

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

o

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

Pero quiero hacer esto en Swift-language.

Puede concatenar cadenas de varias maneras:

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

También podrías hacer:

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

Estoy seguro de que hay más formas también.

Un poco de descripción

let crea una constante. (algo así como un NSString ). No puede cambiar su valor una vez que lo haya configurado. Todavía puede agregarlo a otras cosas y crear nuevas variables.

var crea una variable. (algo así como NSMutableString ) para que pueda cambiar el valor de la misma. Pero esto ha sido respondido varias veces en Stack Overflow, (vea la diferencia entre let y var ).

Nota

En realidad, let y var son muy diferentes de NSString y NSMutableString pero ayudan a la analogía.

Puede agregar una cadena de estas maneras:

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

Creo que los llamé a todos.

 var language = "Swift" var resultStr = "\(language) is new Programming Language" 

Esto también funcionará:

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

\ esto se está utilizando para agregar una cadena a otra cadena.

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

Puede probar esto también: – + palabra clave.

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

Prueba este código

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

Muy simple:

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

Ahora puede usar stringByAppendingString en Swift.

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

XCode no aceptó cadenas opcionales añadidas con una cadena normal. Escribí estas extensiones para resolver ese problema:

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

Entonces puedes llamarlo así:

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

Sin embargo, ahora también puedes hacer algo como esto:

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

Se llama Interpolación de cadenas. Es una forma de crear NUEVA cadena con CONSTANTES, VARIABLES, LITERALES y EXPRESIONES. por ejemplo:

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

además

 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" 

también significa valores de cadena concatenados.

Espero que esto te ayude.

Para imprimir la cadena combinada usando

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

o String3 almacena la salida de la combinación de 2 cuerdas

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

También se puede usar stringByAppendingFormat en 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 

Puede usar SwiftString ( https://github.com/amayne/SwiftString ) para hacer esto.

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

DESCARGO DE RESPONSABILIDAD: escribí esta extensión

Acabo de cambiar de Objective-C a Swift (4) y encuentro que a menudo uso:

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

veloz 4

  let StringHello = "Hello" let StringWorld = "World" let ConcatenatedString = "\(StringHello)\(StringWorld)" print("Concatenated result = \(ConcatenatedString)")