2010-10-27 28 views
0

Quelqu'un at-il un pseudo-algorithme recommandé pour, d'une chaîne contenant une adresse:Java reconnaissant des informations d'adresse et décomposant en variables (pas regex)

Scinder l'adresse à part dans une variable rue, ville variable, une variable d'état et une variable Zip

La chaîne d'adresse peut être formatée de différentes manières. Par exemple, il peut être séparé par des virgules ou séparé par des espaces. En outre, l'adresse peut uniquement contenir une ville et un état, et non une adresse postale ou un code postal. De même, il peut contenir une rue, une ville, un état et non un code postal. Pour rendre les choses plus difficiles, je ne peux pas utiliser les expressions régulières (comme je le développe sur une plate-forme mobile qui ne le supporte pas).

Merci!

+0

Je suis confus ... "Séparer l'adresse à part dans une variable de rue, une variable de ville, une variable d'état, et une variable Zip" et "Aussi , l'adresse ne peut contenir ... pas une adresse postale ou un code postal "semblent se contredire. – Jonathan

+0

Désolé pour la confusion. Si l'adresse ne contient pas d'élément particulier (ville, état ou code postal), elle ne doit pas être séparée (car il n'y a rien à casser). J'utilise essentiellement des instructions if pour générer du XML. Donc, si (ville, état, et zip existent) {alors form XML avec ces éléments} else {forme autre XML} – littleK

+0

Alors adresse = ville + état OU adresse = rue + ville + état? – orangepips

Répondre

0

Non, mais regardez JGeocoder:

http://jgeocoder.sourceforge.net/parser.html

Ils ont divisé les adresses vers le haut dans leurs parties constitutives. Vous pourriez jeter un oeil à la source pour cela ...

+0

Je regardais juste ce que nous parlons, le seul problème est qu'il utilise des expressions régulières. Mais peut-être que je peux encore utiliser une partie de sa logique. – littleK

0

Voici une solution cool utilisant Google Maps fourni par John. Peut-être que vous voulez utiliser que:

Java postal address parser

+0

Merci pour le lien, Rampe, mais malheureusement, je ne peux pas utiliser de services Web externes. J'ai besoin de tout faire localement dans mon code Java. Mais Google est vraiment génial à la mise en forme de ces informations ... – littleK