Swift – Insert a Character in String at Specific Index

To insert a character in string at specific index in Swift, use the String method String.insert().

A simple code snippet to demonstrate how to use String.insert() method

</>
Copy
str1.insert(ch, at: i)

where str1 is the string, ch is the character and i is the index of type String.Index. insert() method inserts character ch at index i in the string str1.

Example

In the following program, we will take a string str1, and insert a character ch="x" at position i=5 using String.insert() method.

Please observe that we have to give the position as String.Index to insert() method.

main.swift

</>
Copy
var str1 = "Hello World!"
var ch :Character = "x"
var i = str1.index(str1.startIndex, offsetBy: 5)
str1.insert(ch, at: i)
print( str1 )

Output

Hellox World!

The character has been inserted at position 5 in the string.

Example 2 – Index Out of Bounds

If the position at which we would like insert the character is out of bounds for the string, then Fatal error occurs with the message “String index is out of bounds”.

In the following program, we take a string of length 11. But, we try to insert the character at position 15. This causes a Fatal error.

main.swift

</>
Copy
var str1 = "Hello World!"
var ch :Character = "x"
var i = str1.index(str1.startIndex, offsetBy: 15)
str1.insert(ch, at: i)
print( str1 )

Output

Fatal error: String index is out of bounds: file Swift/StringCharacterView.swift, line 60
2021-02-12 10:39:55.571491+0530 HelloWorld[1354:68290] Fatal error: String index is out of bounds: file Swift/StringCharacterView.swift, line 60

Conclusion

In this Swift Tutorial, we learned how to insert a character in string at specific position using String.insert() method, with the help of example programs.