2016-11-24 44 views
1

我想得到這個字符串的第一年。破折號前-:「2007-2016」如何在Swift中使用破折號前的第一個單詞?

如何在Swift 3中實現此目標?

我做了一些研究,並且有一個叫substringindex的函數,但不知道我應該用哪一個函數。

我想要實現的是一個排序函數,它會在一年中排序。所以我認爲最好的辦法是使用第一年(從年份開始)。還有一些物品只包含一年...

回答

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」的字符串'index'混淆)。 – 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 
} 

如果字符串中沒有劃線的結果是整個字符串。

相關問題