Working with String
is a common task in macOS and iOS apps. This post presents code examples for converting a String
into an Int
, Double
, Float
, Bool
, and Data
, including Unicode, in Swift.
- Convert a String into an Int, Int8, Int16, Int32, and Int64
- Convert a String into an UInt, UInt8, UInt16, UInt32, and UInt64
- Convert a String into a Double
- Convert a String into a Float and Float80
- Convert a String into a Bool
- Convert a String into Data (Unicode, UTF-8, UTF-16, UTF-32)
- Convert a String into NSData
String Transformation For NSString
The examples in this post also apply to NSString
. An NSString
can be cast to a String using as
. Example:
let nsString: NSString = "NS"
let string = nsString as String
Convert a String into an Int, Int8, Int16, Int32, and Int64
The Swift type Int
, and related Int8
, Int16
, Int32
, and Int64
, contain a constructor that takes in a String
argument and return an optional parsed value.
// Convert String to Int
let encodedInt = "3"
let int = Int(encodedInt)
// Examples for other Int types
let int8 = Int8(encodedInt)
let int16 = Int16(encodedInt)
let int32 = Int32(encodedInt)
let int64 = Int64(encodedInt)
Convert a String into a UInt, UInt8, UInt16, UInt32, and UInt64
Just like Int
, the Swift type UInt
, and related UInt8
, UInt16
, UInt32
, and UInt64
, contain a constructor that takes in a String argument and return an optional parsed value.
// Convert String to UInt
let encodedUInt = "3"
let uint = UInt(encodedInt)
// Examples for other UInt types
let uint8 = UInt8(encodedInt)
let uint16 = UInt16(encodedInt)
let uint32 = UInt32(encodedInt)
let uint64 = UInt64(encodedInt)
Convert a String into a Double
One constructor of the Swift type Double
takes in a String
argument and returns an optional parsed value.
// Convert a String to Double
let encodedDouble = "3.14"
let double = Double(encodedDouble)
Convert a String into a Float and Float80
One constructor of the Swift type Float
, and similarly Float80
, takes in a String
argument and returns an optional parsed value.
// Convert a String to Float
let encodedFloat = "3.14"
let float = Float(encodedFloat)
let float80 = Float80(encodedFloat)
Convert a String into a Bool
Although the Bool
type does not have a dedicated constructor that takes a String
, comparison can be used to convert a String
to a Bool
.
// Convert a String to Bool
let encodedBoolean = "true"
let boolean = (encodedBoolean == "true")
Convert a String into Unicode (UTF-8, UTF-16, UTF-32)
There are three different types of Unicode character encodings: UTF-8, UTF-16 and UTF-32. The String
method data(using:)
takes in an enum specifying how the String should be encoded and returns an optional Data, with enum options like .unicode
, .utf8
, .utf16
, and .utf32
.
// Convert a String to Unicode
let string = "hello"
let unicode = string.data(using: .unicode)
// Convert a String to UTF-8, UTF-16, and UTF-32
let utc8 = string.data(using: .utf8)
let utf8 = string.data(using: .utf16)
let utf8 = string.data(using: .utf32)
Convert a String into NSData
The data(using:)
method on a Swift String
returns Data
, which can be cast using as to NSData
.
// Encode a String as Data
let string = "hello"
let unicode = string.data(using: .unicode)
// Cast Data to NSData
let nsData = unicode as? NSData
Transform a String into an Int, Double, Float, Bool, and Data in Swift
That's it! Using the different transformation methods presented in the code examples you can transform String
into different Swift data types in your macOS and iOS apps.