Java 字符串中提取 IP
在 Java 编程中,我们经常会遇到需要从字符串中提取 IP 地址的情况。IP 地址是一个常见的网络标识符,它由四个由点分隔的数字组成,每个数字范围在 0 到 255 之间。本文将介绍如何使用 Java 提取字符串中的 IP 地址,并提供代码示例。
使用正则表达式提取 IP
Java 中的正则表达式是一种强大的工具,可以用于匹配和提取字符串中的特定模式。我们可以利用正则表达式来提取字符串中的 IP 地址。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IPAddressExtractor {
public static void extractIP(String input) {
String regex = "\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String ip = matcher.group();
System.out.println("IP address found: " + ip);
}
}
public static void main(String[] args) {
String input = "This is a sample text with IP address 192.168.0.1 and 10.0.0.1";
extractIP(input);
}
}
在上面的示例中,我们定义了一个 extractIP
方法,该方法接收一个字符串作为输入。使用正则表达式 "\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b"
来匹配 IP 地址。然后,我们使用 Pattern
类的 compile
方法编译正则表达式,并使用 Matcher
类的 find
方法找到匹配的 IP 地址。最后,我们使用 group
方法获取匹配到的 IP 地址并打印出来。
在 main
方法中,我们提供了一个示例字符串 input
,其中包含了两个 IP 地址。通过调用 extractIP
方法,我们可以提取出这两个 IP 地址。
使用 Guava 库提取 IP
除了正则表达式,我们还可以使用 Guava 库中的 InetAddresses
类来提取字符串中的 IP 地址。Guava 库是 Google 提供的一个功能强大的 Java 工具库,其中包含了许多实用的功能。
import com.google.common.net.InetAddresses;
public class IPAddressExtractor {
public static void extractIP(String input) {
String[] words = input.split("\\s+");
for (String word : words) {
if (InetAddresses.isInetAddress(word)) {
System.out.println("IP address found: " + word);
}
}
}
public static void main(String[] args) {
String input = "This is a sample text with IP address 192.168.0.1 and 10.0.0.1";
extractIP(input);
}
}
在上面的示例中,我们首先使用 split
方法将输入字符串拆分成单个单词。然后,我们遍历每个单词,并使用 InetAddresses.isInetAddress
方法来检查它是否是一个有效的 IP 地址。如果是有效的 IP 地址,我们就打印出来。
总结
本文介绍了如何使用 Java 从字符串中提取 IP 地址。我们可以使用正则表达式或 Guava 库来实现这个功能。无论使用哪种方法,都可以在 Java 编程中方便地提取 IP 地址。
如果您在编程中遇到需要提取 IP 地址的情况,希望本文的示例代码可以帮助您解决问题。