Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing characters from a string in Swift

I have a function:

func IphoneName() -> String
{
    let device = UIDevice.currentDevice().name
    return device
}

Which returns the name of the iPhone (simple). I need to remove the "'s Iphone" from the end. I have been reading about changing it to NSString and use ranges, but I am a bit lost!

like image 934
Jason Avatar asked Oct 08 '14 10:10

Jason


1 Answers

What about this:

extension String {

    func removeCharsFromEnd(count:Int) -> String{
        let stringLength = countElements(self)

        let substringIndex = (stringLength < count) ? 0 : stringLength - count

        return self.substringToIndex(advance(self.startIndex, substringIndex))
    }

    func length() -> Int {
        return countElements(self)
    }
}

Test:

var deviceName:String = "Mike's Iphone"

let newName = deviceName.removeCharsFromEnd("'s Iphone".length()) // Mike

But if you want replace method use stringByReplacingOccurrencesOfString as @Kirsteins posted:

let newName2 = deviceName.stringByReplacingOccurrencesOfString(
     "'s Iphone", 
     withString: "", 
     options: .allZeros, // or just nil
     range: nil)
like image 90
Maxim Shoustin Avatar answered Sep 21 '22 14:09

Maxim Shoustin