使用谷歌 libphonenumber 库验证电话号码的 Java 程序
原文:https://www . geesforgeks . org/Java-程序-验证-电话号码-使用-谷歌-libphonenumber-library/
在当今的网络、移动或桌面应用程序中,验证电话号码是一个常见的先决条件,但是 Java 没有一个集成的方法来执行这种常见的验证。因此,我们必须使用一些开源库来执行这样的验证。谷歌的电话号码库就是这样一个库。它有助于验证任何电话号码,无论是国外的、特定于印度的还是特定于任何国家的。
我们也可以使用正则表达式来验证电话号码,但是编写这样复杂的表达式需要一些技巧,然后测试将是一项没完没了的任务。
libphonenumber 是一个来自谷歌的开源库,用于格式化、解析和验证国际电话号码。它包含许多实现这种功能的方法。其中一些将在下面讨论:
| 返回类型 | 方法 | 描述 | | --- | --- | --- | | 线 | 格式(电话号码。电话号码号码,phonenumberutil(电话号码样式)。PhoneNumberFormat numberFormat) | 使用默认规则将电话号码格式化为指定的格式。 | | 线 | formatNumberForMobileDialing(电话号码。PhoneNumber number,Java . lang . string regionCallingFrom,boolean withFormatting) | 以格式化字符串形式返回号码,以便可以从该地区的手机拨打。 | | 布尔 | ismobi enumberportableregion(Java . lang . string regional code) | 如果作为参数传递的区域支持移动号码可移植性,则该方法返回 true。 | | 布尔 | isnumbermatch(电话号码)。phonenumber firstnumberin,PhoneNumber .电话号码第一个号码,电话号码。phonenumber secondnumberin) | 它需要两个电话号码,并检查它们是否相等 | | 布尔 | ispossibblenumber(Java . lang . charsequence number,Java . lang . string regional dialing rom) | 验证电话号码是否是以字符串形式给出的可能号码,以及可以拨打该号码的地区。 | | 布尔 | isvalid number region(phone number . phone number、java.lang.String regionCode) | 检查给定的数字对于特定地区是否有效 | | 布尔 | isValidNumber(电话号码。电话号码号码) | 验证电话号码是否符合特定模式 | | 布尔 | 国际电话号码。电话号码号码) | 如果可以从指定区域外拨打该号码,则返回 true | | (同 Internationalorganizations)国际组织 | getcountrrycode region(Java . lang . string region code) | 返回特定地区的国家/地区呼叫代码 | | PhoneNumberUtil。电话号码类型 | getNumberType(Phonenumber)。PhoneNumber) | 此方法根据数字本身返回数字的类型。例如,免费、移动、固定电话等。 |这是一个丰富的库,具有更多的实用功能,并且满足了我们程序的大部分需求。
下面是使用谷歌 libphonenumber 库验证电话号码的 Java 实现。这里我们将使用 Eclipse 集成开发环境。
步骤 1:创建一个 Maven 项目
首先,在 Eclipse 中创建一个 Maven 项目。创建一个 Maven 项目而不是一个普通的 Java 项目背后的原因是 libphonenumber 库存在于 Maven 存储库中,所以我们必须在我们的项目中将其用作依赖项。
让一切都默认。工件标识将是您的 Maven 项目的名称。
第二步:添加依赖关系
创建 Maven 项目后,在 pom.xml 文件中添加 libphonenumber 依赖项。保存文件后,库将被下载以供脱机使用。
可扩展标记语言
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Demo</groupId>
<artifactId>DemoProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>libphonenumber</artifactId>
<version>8.12.16</version>
</dependency>
</dependencies>
</project>
步骤 3:创建驱动程序类
现在,只需创建一个 Java 类来使用这个库的功能。
Java 语言(一种计算机语言,尤用于创建网站)
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
public class GFG {
public static void main(String args[])
{
// creating an array of random phone numbers
String[] phonenumbers
= { "+91 94483 76473", "1800 425 3800",
"+91 83944 7484", "0294 2424447" };
// iterating over each number to validate
for (String phone : phonenumbers) {
if (isPhoneNumberValid(phone)) {
System.out.println(phone + " is valid.");
}
else {
System.out.println(phone
+ " is not valid.");
}
}
}
// this method return true if the passed phone number is
// valid as per the region specified
public static boolean isPhoneNumberValid(String phone)
{
// creating an instance of PhoneNumber Utility class
PhoneNumberUtil phoneUtil
= PhoneNumberUtil.getInstance();
// creating a variable of type PhoneNumber
PhoneNumber phoneNumber = null;
try {
// the parse method parses the string and
// returns a PhoneNumber in the format of
// specified region
phoneNumber = phoneUtil.parse(phone, "IN");
// this statement prints the type of the phone
// number
System.out.println(
"\nType: "
+ phoneUtil.getNumberType(phoneNumber));
}
catch (NumberParseException e) {
// if the phoneUtil is unable to parse any phone
// number an exception occurs and gets caught in
// this block
System.out.println(
"Unable to parse the given phone number: "
+ phone);
e.printStackTrace();
}
// return the boolean value of the validation
// performed
return phoneUtil.isValidNumber(phoneNumber);
}
}
输出:
Type: MOBILE
+91 94483 76473 is valid.
Type: TOLL_FREE
1800 425 3800 is valid.
Type: UNKNOWN
+91 83944 7484 is not valid.
Type: FIXED_LINE
0294 2424447 is valid.
版权属于:月萌API www.moonapi.com,转载请注明出处