0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

前方一致を確認し、最も長い一致を見つける

Posted at

前方一致するデータを抽出するためには、filterメソッドやfirst(where:)メソッドを使って、HogeDataのnameが対象の文字列と前方一致するものを取得できます。そして、最も長い前方一致のデータを見つけるためには、前方一致するデータの中で、nameの長さが一番長いものを選びます。

以下はその実装例です

struct HogeData {
    let id: Int
    let name: String
}

let hogeArray: [HogeData] = [
    HogeData(id: 1, name: "あいうえお"),
    HogeData(id: 2, name: "あいうえおかき"),
    HogeData(id: 3, name: "あい"),
    HogeData(id: 4, name: "かきくけこ"),
]

let targetString = "あいうえおかきくけこ"

// 前方一致を確認し、最も長い一致を見つける
if let longestMatch = hogeArray
    .filter({ targetString.hasPrefix($0.name) })  // 前方一致するデータをフィルタリング
    .max(by: { $0.name.count < $1.name.count }) { // 一番長い名前を探す
    print("一番長く前方一致するデータ: \(longestMatch)")
} else {
    print("前方一致するデータがありません")
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?