Java 将电话号码(移动电话或陆路电话)拆分为国家代码、区号和号码
我需要将电话号码(可以是移动电话或陆路电话)拆分为:Java 将电话号码(移动电话或陆路电话)拆分为国家代码、区号和号码,java,parsing,Java,Parsing,我需要将电话号码(可以是移动电话或陆路电话)拆分为: 国家/地区拨号代码 区域代码 电话号码 示例: +923211234567将92 32x 1234567(移动) +92992123456将92992123456(陆线) 假设我有一个数据库,里面有所有国家的拨号代码、区号、移动国家代码、移动网络代码 问题是国家/地区拨号代码可以是1、2或3位数字。例如: 1适用于美国,92适用于巴基斯坦,或233适用于加纳 此外,区域和移动网络代码可以是2或3位数字。有什么想法吗?在拆分之前是否知道该号
- 国家/地区拨号代码
- 区域代码
- 电话号码
+923211234567
将92 32x 1234567
(移动)+92992123456
将92992123456
(陆线)
假设我有一个数据库,里面有所有国家的拨号代码、区号、移动国家代码、移动网络代码
问题是国家/地区拨号代码可以是1、2或3位数字。例如:
1
适用于美国,92
适用于巴基斯坦,或233
适用于加纳
此外,区域和移动网络代码可以是2或3位数字。有什么想法吗?在拆分之前是否知道该号码是移动号码还是陆路号码?如果没有,则连数字的长度都可能不同。您可以使用该库。
可以找到一个演示页面。我已经看到了,但问题是phoneUtil.parse()需要国家代码…我没有国家代码,它只需要默认的国家代码,让用户输入或选择一个您认为最常见的号码。无法判断该号码是移动号码还是陆路号码…是的,其长度会有所不同,您可以看到示例
try {
// phone must begin with '+'
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
Phonenumber.PhoneNumber numberProto = phoneUtil.parse("your number", "");
int countryCode = numberProto.getCountryCode();
long nationalNumber = numberProto.getNationalNumber();
Log.i("code", "code " + countryCode);
Log.i("code", "national number " + nationalNumber);
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}