2014-10-08 5 views
5

Все,Удаление символов из строки в Swift

У меня есть функция:

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

который возвращает имя Айфона (простой). Мне нужно удалить «Iphone» с конца. Я читал об изменении его на NSString и использовал диапазоны, но я немного потерял !! Вы можете помочь?

+2

Что делать, если они переименовали свое устройство, чтобы оно не заканчивается тем, что вы ожидали. Имя моего устройства не соответствует шаблону, который вы ищете. – Abizern

+0

Просьба указать * почему * вы хотите получить доступ к имени пользователя. –

ответ

7

Что об этом:

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) 
    } 
} 

Тест:

var deviceName:String = "Mike's Iphone" 

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

Но если вы хотите заменить использовать метод stringByReplacingOccurrencesOfString, как @Kirsteins писал:

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

Совершенно большое спасибо – Jason

+0

@downvoter, что не так в моем ответе? –

7

В этом случае вам не нужно работать с диапазонами. Вы можете использовать:

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

В Swift3:

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

Этот код не удаляет скобки ... Для примера: я хочу заменить этот «\» («этим» «Но это не сработает. Это похоже на то, что он не распознает круглые скобки в строках. –

Смежные вопросы