当我通过号码(+972573481112“)和国家代码(”IL“)时,我获得国家代码值972 但我想只传递号码并获得任何国家代码值。
我不想传递“IL”。而我只是想通过移动电话接听电话。 有可能吗?如果可能,请提前快速回复。
String number = "+972579481112";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber pNumber = phoneUtil.parse(number, "IL");
Log.v("Number ",pNumber.getCountryCode());
} catch (NumberParseException e) {
e.printStackTrace();
}
我接到的电话如下: 972579481112
972579481112
0579481112
0579481112
这是我的核心java文件的代码并添加libphonenumber jar
public class Hello {
static String[] countrycode = { "AF", "AL", "DZ", "AD", "AO", "AQ", "AR",
"AM", "AW", "AU", "AT", "AZ", "BH", "BD", "BY", "BE", "BZ", "BJ",
"BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "MM", "BI", "KH",
"CM", "CA", "CV", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM",
"CG", "CD", "CK", "CR", "HR", "CU", "CY", "CZ", "DK", "DJ", "TL",
"EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI",
"FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GT",
"GN", "GW", "GY", "HT", "HN", "HK", "HU", "IN", "ID", "IR", "IQ",
"IE", "IM", "IL", "IT", "CI", "JP", "JO", "KZ", "KE", "KI", "KW",
"KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO",
"MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MR", "MU", "YT",
"MX", "FM", "MD", "MC", "MN", "ME", "MA", "MZ", "NA", "NR", "NP",
"NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "KP", "NO", "OM",
"PK", "PW", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR",
"QA", "RO", "RU", "RW", "BL", "WS", "SM", "ST", "SA", "SN", "RS",
"SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "KR", "ES", "LK",
"SH", "PM", "SD", "SR", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ",
"TH", "TG", "TK", "TO", "TN", "TR", "TM", "TV", "AE", "UG", "GB",
"UA", "UY", "US", "UZ", "VU", "VA", "VE", "VN", "WF", "YE", "ZM",
"ZW" };
static String[] countryval = { "93", "355", "213", "376", "244", "672",
"54", "374", "297", "61", "43", "994", "973", "880", "375", "32",
"501", "229", "975", "591", "387", "267", "55", "673", "359",
"226", "95", "257", "855", "237", "1", "238", "236", "235", "56",
"86", "61", "61", "57", "269", "242", "243", "682", "506", "385",
"53", "357", "420", "45", "253", "670", "593", "20", "503", "240",
"291", "372", "251", "500", "298", "679", "358", "33", "689",
"241", "220", "995", "49", "233", "350", "30", "299", "502", "224",
"245", "592", "509", "504", "852", "36", "91", "62", "98", "964",
"353", "44", "972", "39", "225", "81", "962", "7", "254", "686",
"965", "996", "856", "371", "961", "266", "231", "218", "423",
"370", "352", "853", "389", "261", "265", "60", "960", "223",
"356", "692", "222", "230", "262", "52", "691", "373", "377",
"976", "382", "212", "258", "264", "674", "977", "31", "599",
"687", "64", "505", "227", "234", "683", "850", "47", "968", "92",
"680", "507", "675", "595", "51", "63", "870", "48", "351", "1",
"974", "40", "7", "250", "590", "685", "378", "239", "966", "221",
"381", "248", "232", "65", "421", "386", "677", "252", "27", "82",
"34", "94", "290", "508", "249", "597", "268", "46", "41", "963",
"886", "992", "255", "66", "228", "690", "676", "216", "90", "993",
"688", "971", "256", "44", "380", "598", "1", "998", "678", "39",
"58", "84", "681", "967", "260", "263", };
public static void main(String[] args) {
String numbe = "9408135563";
for (int i = 0; i < countrycode.length; i++) {
if (numbe.startsWith("+"+countryval[i])) {
System.out.println(countrycode[i]);
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber pNumber = phoneUtil.parse(numbe, countrycode[i]);
System.out.println("code "+pNumber.getCountryCode()+"Number "+pNumber.getNationalNumber());
} catch (NumberParseException e) {
e.printStackTrace();
}
}else if(numbe.startsWith(countryval[i])){
System.out.println(countrycode[i]);
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber pNumber = phoneUtil.parse(numbe, countrycode[i]);
System.out.println("code "+pNumber.getCountryCode()+"Number "+pNumber.getNationalNumber());
} catch (NumberParseException e) {
e.printStackTrace();
}
}else if(numbe.startsWith("0")){
System.out.println("code "+numbe.substring(0,1)+"Number "+numbe.substring(1));
}else if(numbe.startsWith("+0")){
System.out.println("code "+numbe.substring(0,2)+"Number "+numbe.substring(2));
}
}
}
}
答案 0 :(得分:0)
我只知道你需要有一份国家代码清单,并用收到的电话查看代码,即:
phoneNumber.startsWith(countryCode);
修改强>
如果确认电话号码中没有数字,您可以采用其他方法。 我的意思是说,如果你知道电话号码总是说10位数的手机号码,那么你总是可以通过从索引0到(电话号码 - 10的长度)获取电话号码的子串来获得国家代码。