aspose file tools
The moose likes Java in General and the fly likes How to parse a phone number Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login
JavaRanch » Java Forums » Java » Java in General
Reply Bookmark "How to parse a phone number" Watch "How to parse a phone number" New topic
Author

How to parse a phone number

Nrapendra Sharma
Ranch Hand

Joined: Jun 16, 2008
Posts: 31
Hi,
I want to parse a phoneNumber in order take out country code, area code etc.
What will be the best way to do that...

e.g i have number "+919889988998"
or "+9889988998"
there can be many more cases.


Regards,
Nrapendra Sharma
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 35223
    
    7
Since the format is different for each country, you'd need to have rules somewhere for every country you wish to support.

Also, the examples you mention show a further complication: The "+" sign is generally used to mean that a country code follows - but that's only the case with the first number, not the second. You also need to account for the fact that numbers can differ depending on whether they are intended to be called from within a country, or from outside of a country.


Android appsImageJ pluginsJava web charts
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 32599
    
    4
You can probably search and find regular expressions which other people have used in the past for phone numbers. But as Ulf says, it is country-specific, and in Britain region-specific. London phone numbers have a different format from Manchester phone numbers which have a different format from Leeds phone numbers and they have a different format from Cambridge phone numbers and companies tend to have a different format etc etc
Nrapendra Sharma
Ranch Hand

Joined: Jun 16, 2008
Posts: 31
i need to detect country mainly.
is there any standard implementation which can be refered for creating a phone parser ..??

Shashank Agarwal
Ranch Hand

Joined: May 20, 2004
Posts: 105
Nrapendra Sharma wrote:i need to detect country mainly.
is there any standard implementation which can be refered for creating a phone parser ..??


I think you could use a list of dialing codes - http://en.wikipedia.org/wiki/List_of_country_calling_codes

See how the codes are not overlapping. eg. if Egypt is +20, there's no country with +20x

So you could put these codes in a map (code -> country), then check the first digit. If that matches a code, then that's the country. If it does not, take the second digit to get a two digit code and see if that's in the map. I don't think that's most elegant, but maybe better than getting a list of regular expressions if all you're trying to do is detect country.
 
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to run our stuff on 16 servers instead of 3.
 
subject: How to parse a phone number
 
Similar Threads
Hex Decode for Byte's
Regular Expressions
couldn't get back integer value
Alternate Replacement of ParseInt in java ?
Reading Reg exp from text file give error