Here is how:
let string = "350kph"
let stringArray = string.components(separatedBy: CharacterSet.decimalDigits.inverted)
for item in stringArray {
if let integer = Int(item) {
print("integer: \(integer)")
}
}
Note: This would work for strings containing multiple Int
eg: "350km per 2hr". You would only require:
let string = "350kph"
let integer = Int(string.components(separatedBy: CharacterSet.decimalDigits.inverted).joined())
print("integer: \(integer)")
Okay I saw your edits, here's how to decimals, (there are other ways too):
let string = "350.55kph"
let components = string.components(separatedBy: ".")
let decimalPart = Int(components.last!.components(separatedBy: CharacterSet.decimalDigits.inverted).joined()) ?? 0
let double = Double("\(components.first ?? "0").\(decimalPart)")
print(decimalPart,"double: \(double)")
Other way: You can modify the CharecterSet
to achieve the desired result.