2016-11-24 2 views
1

Я хотел бы получить первый год этой строки. Точка перед тире -: «2007-2016»Как получить первое слово перед тире в Swift?

Как я могу достичь этого в Swift 3?

Я провел некоторое исследование, и есть функция, называемая substring или index, но не знаю, какой из них я должен использовать.

Что я хочу достичь - это функция сортировки, которая будет сортироваться по году. Поэтому я считаю, что лучший способ сделать это - использовать первый год (с года). Есть также объекты, которые содержат только один год ...

ответ

2

Использовать index(of:) и substring(to:).

После вашего комментария, я также добавил пример, чтобы получить второй год.

let str = "2007-2016" 

if let idx = str.characters.index(of: "-") { 
    let year1 = str.substring(to: idx) 
    print(year1) 
    let year2 = str.substring(from: str.index(after: idx)) 
    print(year2) 
} 
+0

Возможно ли получить значение после тире? – Caspert

+0

Да, я обновил свой ответ (и изменил имя переменной «index» на «idx», чтобы избежать путаницы с «индексом», который мы используем в строке для извлечения «year2»). – Moritz

0

Два (другие) решения:

let string = "2007-2016" 

let year1 = string.components(separatedBy: "-").first! 

let year2 : String 
if let range = string.range(of: "-") { 
    year2 = string.substring(to: range.lowerBound) 
} else { 
    year2 = string 
} 

Если нет никакого тира в строке результат всей строка.

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