Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if two NSStrings are similar

I present a tricky question that I am not sure how to approach. So, I have formulated a plist containing dictionaries which contain two objects:

  • The Country Name
  • The Plug Size Of The Country

There are only 210 countries/facts though.

And, I have enabled to search through a list of many many countries, in which there might be a fact or not. But here is my problem, I am using a web service called Geonames and the user can use a search bar display controller to search for countries, and these plist country names paired with plug sizes are actually from a Wikipedia article.

Now, the country naming in Geonames and in my plist from Wikipedia might be named slightly different, maybe with an extra space, an extra dash, an extra letter. This is why I want to see if the geoname country string is very similar to the one in the plist.

So, this would not be isEqualToString: because that finds if it is exact, can the compare: method work?

How can I approach this? Here is an example:

Geoname returns (not a real country just an example):

  • Yiting

But plist may return:

  • Yitting

So with 1 extra 't', but there are other circumstances. I would like these to be compared as exact, or at least similar, so I could consider them as a match.

Are there any tutorials, resources, projects etc. you could point me towards?

Thank you! Bye!

like image 469
MCKapur Avatar asked Jan 15 '23 06:01

MCKapur


1 Answers

The Soundex algorithm is useful in cases like this.

I found a sample implementation on github.

like image 174
rmaddy Avatar answered Jan 26 '23 03:01

rmaddy