判断一个字符串是否为IP
时间: 2023-11-11 17:51:02 浏览: 105
判断一个字符串是否为IP地址有多种方法,根据提供的引用内容,我可以提供三种不同的方法来判断一个字符串是否为IP地址。
方法一:常判断法
```java
public boolean isCorrectIp(String ipString) {
//判断字符串长度是否在7-15位之间(0.0.0.0-255.255.255.255)
if (ipString.length()<7 || ipString.length()>15) {
return false;
}
//判断是否能以小数点分成四段
String[] ipArray = ipString.split("\\.");
if (ipArray.length != 4) {
return false;
}
for (int i = 0; i < ipArray.length; i++) {
//判断每段是否都是数字
try {
int number = Integer.parseInt(ipArray[i]);
//判断每段数字是否都在0-255之间
if (number < 0 || number > 255) {
return false;
}
} catch (Exception e) {
return false;
}
}
return true;
}
```
方法二:正则表达式判断法
```java
public boolean isCorrectIp2(String ipString) {
String ipRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"; //IP地址的正则表达式
//如果前三项判断都满足,就判断每段数字是否都位于0-255之间
if (ipString.matches(ipRegex)) {
String[] ipArray = ipString.split("\\.");
for (int i = 0; i < ipArray.length; i++) {
int number = Integer.parseInt(ipArray[i]);
//判断每段数字是否都在0-255之间
if (number < 0 || number > 255) {
return false;
}
}
return true;
} else {
return false; //如果与正则表达式不匹配,则返回false
}
}
```
方法三:方法二的正则表达式写法
```java
public static boolean isIpLegal(String ipStr) {
String ipRegEx = "^([1-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))(\\.([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))){3}$";
Pattern pattern = Pattern.compile(ipRegEx);
Matcher matcher = pattern.matcher(ipStr);
if (matcher.matches()) {
return true;
} else {
return false;
}
}
```
以上是三种判断字符串是否为IP地址的方法,你可以根据需要选择其中一种方法使用。
阅读全文