How Do I Concatenate Strings in Swift?

How to concatenate string in Swift?

In Objective-C we do like

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

or

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

But I want to do this in Swift-language.

1

21 Answers

You can concatenate strings a number of ways:

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

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

You could also do:

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

I'm sure there are more ways too.

Bit of description

let creates a constant. (sort of like an NSString). You can't change its value once you have set it. You can still add it to other things and create new variables though.

var creates a variable. (sort of like NSMutableString) so you can change the value of it. But this has been answered several times on Stack Overflow, (see difference between let and var).

Note

In reality let and var are very different from NSString and NSMutableString but it helps the analogy.

10

You can add a string in these ways:

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

I think I named them all.

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

This will work too:

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

\ this is being used to append one string to another string.

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

You can try this also:- + keyword.

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

Try this code.

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

Very Simple:

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

You can now use stringByAppendingString in Swift.

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

Xcode didn't accept optional strings added with a normal string. I wrote this extensions to solve that problem:

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

Then you can call it like:

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

However you could now also do something like this:

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

Swift 5

You can achieve it using appending API. This returns a new string made by appending a given string to the receiver.

API Details : here

Use:

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

Result:

Hello
Hello Namaste

It is called as String Interpolation. It is way of creating NEW string with CONSTANTS, VARIABLE, LITERALS and EXPRESSIONS. for examples:

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

also

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"

it also mean as concatenating string values.

Hope this helps you.

I just switched from Objective-C to Swift (4), and I find that I often use:

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

To print the combined string using

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

or String3 stores the output of combination of 2 strings

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

One can also use stringByAppendingFormat 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

Concatenation refers to the combining of Strings in Swift. Strings may contain texts, integers, or even emojis! There are many ways to String Concatenation. Let me enumerate some:

Same String

Using +=

This is useful if we want to add to an already existing String. For this to work, our String should be mutable or can be modified, thus declaring it as a Variable. For instance:

var myClassmates = "John, Jane"
myClassmates += ", Mark" // add a new Classmate
// Result: "John, Jane, Mark"

Different Strings

If we want to combine different Strings together, for instance:

let oldClassmates = "John, Jane" 
let newClassmate = "Mark"

We can use any of the following:

1) Using +

let myClassmates = oldClassmates + ", " + newClassmate
// Result: "John, Jane, Mark"

Notice that the each String may be a Variable or a Constant. Declare it as a Constant if you're only gonna change the value once.

2) String Interpolation

let myClassmates = "\(oldClassmates), \(newClassmate)"
// Result: "John, Jane, Mark"

3) Appending

let myClassmates = oldClassmates.appending(newClassmate)
// Result: "John, Jane, Mark"

Refer to Strings & Characters from the Swift Book for more.

Update: Tested on Swift 5.1

Elena Rostova

Elena Rostova

Lead Health, Wellness & Medical Journalist

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.