4

アプローチ方法がわからないというトリッキーな質問を提示します。そこで、2つのオブジェクトを含む辞書を含むplistを作成しました。

  • 国名
  • 国のプラグサイズ

しかし、210の国/事実しかありません。

そして、事実があるかどうかにかかわらず、多くの国のリストを検索できるようにしました。しかし、ここに私の問題があります。私はGeonamesというWebサービスを使用しており、ユーザーは検索バーの表示コントローラーを使用して国を検索できます。これらのplistの国名とプラグサイズの組み合わせは、実際にはWikipediaの記事からのものです。

さて、Geonamesとウィキペディアの私のplistでの国の名前は、少し異なる名前が付けられている可能性があります。おそらく、余分なスペース、余分なダッシュ、余分な文字があります。これが、geoname国の文字列がplistの文字列と非常に似ているかどうかを確認したい理由です。

だから、これはisEqualToString:それが正確であるかどうかを見つけるからではないでしょう、compare:メソッドは機能することができますか?

どうすればこれにアプローチできますか?次に例を示します。

Geonameが返す(実際の国ではなく、単なる例):

  • Yiting

しかし、plistは戻る可能性があります:

  • イッティング

したがって、1つの余分な「t」がありますが、他の状況があります。これらを正確に、または少なくとも類似しているものとして比較して、一致していると見なすことができるようにしたいと思います。

チュートリアル、リソース、プロジェクトなど、私に教えてくれるものはありますか?

ありがとうございました!さよなら!

4

3 に答える 3

5

Soundexアルゴリズムは、このような場合に役立ちます。

githubでサンプル実装を見つけました。

于 2012-10-20T02:01:34.970 に答える
2

文字列の近似マッチングのためのアルゴリズムを実装する必要があります。最も人気のあるそのようなアルゴリズムの1つは、いくつかの編集距離アルゴリズムの1つであるレーベンシュタイン距離です。距離は、文字列Aを文字列Bに変換するために必要な編集操作の数として計算されます。文字の挿入、削除、または変更は、1回の編集操作としてカウントされます。文字列が近いほど、文字列間の編集距離は小さくなります。ペアワイズ編集距離を計算し、一致を識別するために最小のものを見つけることができます。

于 2012-10-20T01:30:49.977 に答える
2

自動更新/完全に関するこの投稿が役立つ場合があります。

UIViewControllerクラスUITextViewのプロトコルを順守している間はうまく機能し、メッセージアプリで見られるものと同様の結果が得られることをテストしました。UITextViewDelegate私はチェックしていませんし、チェックもUITextFieldしていませんUITextFieldDelegate

オートコンプリート/オートコレクト

于 2012-10-20T01:47:00.533 に答える