close

Swift - 查找陣列字串


使用 rangeOfString() 需要先 import Fundation

若沒有先 import Fundation,則會在rangeOfString該行出現 value of type "String" has no member "range" 的錯誤

Swift 2.2:

import Foundation
let myArray = ["Yahoo", "Google", "Amazon", "Yamaha", "Yamazaki", "Twitter", "Facebook"]
let itemToSearch = "ya"
let filteredStrings = myArray.filter({(item: String) -> Bool in
    var stringMatch = item.lowercaseString.rangeOfString(itemToSearch.lowercaseString)
    return stringMatch != nil ? true : false
})

 


Swift 3.0 :

1. rangeOfString() 改為 range(of: )

2. lowercaseString 改為 lowcased()

import Foundation
let myArray = ["Yahoo", "Google", "Amazon", "Yamaha", "Yamazaki", "Twitter", "Facebook"]
let itemToSearch = "ya"
let filteredStrings = myArray.filter({(item: String) -> Bool in
   var stringMatch = item.lowcased().range(of: itemToSearch.lowcased())
   return stringMatch != nil ? true : false
})

 

Apple Doc : API reference

https://developer.apple.com/reference/swift/string

 

Returns a lowercase version of the string.

func lowercased() -> String

 

https://developer.apple.com/reference/foundation/nsstring/1410144-range

 

Finds and returns the range of the first occurrence of a given string within the receiver.

func range(of searchString: String) -> NSRange

 

arrow
arrow
    文章標籤
    Swift
    全站熱搜
    創作者介紹
    創作者 Entropyqts 的頭像
    Entropyqts

    想像力 Plus

    Entropyqts 發表在 痞客邦 留言(0) 人氣()