[mkgmap-dev] Re: Questions related to practical usage of MKGMAP
From Toby Speight T.M.Speight.90 at cantab.net on Thu Jul 2 09:12:25 BST 2009
0> In article <56AA797E-5E8D-477F-B4A1-B2A113F41974 at gmx.de>, 0> Thilo Hannemann <URL:mailto:thannema at gmx.de> ("Thilo") wrote: Thilo> And finally one patch that you might want to apply: "start-with". Thilo> This adds a text filter for variable substitution. You can say Thilo> for example $ {name|start-with:Hospital }. This will put the Thilo> string "Hospital " in front of the name, but only if that string Thilo> doesn't contain "Hospital" somewhere already. I like that idea! A corresponding 'end-with' would be really useful (certainly in English, where the name usually comes before the function, e.g. "Strathcarron Station"). Thilo> + searchPhrase = arg.trim().toLowerCase(); Thilo> + ... Thilo> + if (value.toLowerCase().indexOf(searchPhrase) != -1) That's not the best way to do a case-insensitive test - the reason being that in some languages (e.g. French, I think) upper case letters have no accents. So "Ecole" should match "école" (again, excuse my poor French if necessary!). Also, in German, "Straße" should match "STRASSE". Conversion of both values to uppercase is therefore a better simple solution. (I was surprised to find that java.text.Collator doesn't have an indexOf() method - that's where I'd expect to do locale-dependent matching). To do it properly, look at java.util.regexp - something like: /-------- | searchPattern = Pattern.compile(Pattern.quote(arg.trim()), | Pattern.UNICODE_CASE | Pattern.CANON_EQ); | ... | if (searchPattern.matcher(value).matches()) \--------
- Previous message: [mkgmap-dev] Re: Questions related to practical usage of MKGMAP
- Next message: [mkgmap-dev] Re: Questions related to practical usage of MKGMAP
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list