0
点赞
收藏
分享

微信扫一扫

java 字符串中提取ip

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 地址的情况,希望本文的示例代码可以帮助您解决问题。

举报

相关推荐

0 条评论