2014-10-08 18 views
5

Alle,Entfernen Zeichen aus einer Zeichenkette in Swift

Ich habe eine Funktion:

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

, die den Namen des iPhone gibt (einfach). Ich muss das "Iphone" vom Ende entfernen. Ich habe gelesen, dass ich es in NSString ändere und Bereiche verwende, aber ich bin etwas verloren !! Können Sie helfen?

+2

Was passiert, wenn sie ihr Gerät umbenannt haben, damit es nicht mit endet, was Sie erwarten. Mein Gerätename stimmt nicht mit dem Muster überein, nach dem Sie suchen. – Abizern

+0

Bitte geben Sie * why * an, dass Sie auf den Namen des Benutzers zugreifen möchten. –

Antwort

7

Was dazu:

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 

Aber wenn Sie wollen Methode Verwendung stringByReplacingOccurrencesOfString als @Kirsteins ersetzen posted:

let newName2 = deviceName.stringByReplacingOccurrencesOfString(
    "'s Iphone", 
    withString: "", 
    options: .allZeros, // or just nil 
    range: nil) 
+0

Perfect vielen Dank – Jason

+0

@ downvoter was ist falsch in meiner Antwort? –

7

In diesem Fall müssen Sie nicht mit Bereichen arbeiten. Sie können:

var device = UIDevice.currentDevice().name 
device = device.stringByReplacingOccurrencesOfString("s Iphone", withString: "", options: .allZeros, range: nil) 
2

In swift3:

var device = UIDevice.currentDevice().name 
device = device.replacingOccurrencesOfString("s Iphone", withString: "") 
+0

Dieser Code entfernt keine Klammern ... Zum Beispiel: Ich möchte dieses "\" ("dadurch" "ersetzen. Aber es funktioniert nicht. Es ist wie es keine Klammern in Strings erkennt. Irgendeine Idee? –

Verwandte Themen