编写一个Java函数来检查IP地址格式是否合法
发布时间:2023-08-09 03:58:12
下面是一个用Java编写的函数,用于检查IP地址格式是否合法。该函数接受一个字符串参数,即要检查的IP地址。如果IP地址格式合法,则返回true,否则返回false。
public static boolean isValidIP(String ipAddress) {
if (ipAddress == null || ipAddress.isEmpty()) {
return false;
}
// 使用正则表达式来验证IP地址格式
String pattern = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
return ipAddress.matches(pattern);
}
这个函数使用了一个正则表达式来验证IP地址的格式。正则表达式的模式是:
^
(
(
[0-9] // 一个数字(0-9)
|
[1-9][0-9] // 两位数, 位不能为0
|
1[0-9]{2} // 三位数,以1开头的
|
2[0-4][0-9] // 三位数,以2开头,第二位为0-4的数字
|
25[0-5] // 三位数,以25开头,第三位为0-5的数字
)
\. // 点分隔符
){3} // 上面的组合出现3次
(
[0-9] // 最后一组只有一个数字
|
[1-9][0-9] // 最后一组是两位数, 位不能为0
|
1[0-9]{2} // 最后一组是三位数,以1开头的
|
2[0-4][0-9] // 最后一组是三位数,以2开头,第二位为0-4的数字
|
25[0-5] // 最后一组是三位数,以25开头,第三位为0-5的数字
)
$
这个正则表达式可以验证IP地址的格式是否满足以下要求:
- IP地址由4个数字组成,每个数字范围为0-255。
- 每个数字之间使用点(.)分隔。
- IP地址的每个数字不能以0开头,除非该数字本身为0。
使用这个函数可以检查任意字符串是否是合法的IP地址。例如:
String ip1 = "192.168.0.1"; System.out.println(isValidIP(ip1)); // 输出 true String ip2 = "256.0.0.1"; System.out.println(isValidIP(ip2)); // 输出 false String ip3 = "127.0.0.01"; System.out.println(isValidIP(ip3)); // 输出 false String ip4 = "192.168..1"; System.out.println(isValidIP(ip4)); // 输出 false
以上示例中,只有ip1是合法的IP地址,其他三个字符串都不满足IP地址的格式要求。
