如何将 IP 字符串转换为 java 中的整数数组?

How to convert an IP string to an array of integers in java?

我正在尝试从 java 中的 IP 字符串创建一个整数数组。 例如:

String ip = "192.168.0.1";
int[] ipArray = new int[4];
int[0] = 192; int[1] = 168; int[2] = 0; int[3] = 1;

知道我该怎么做吗?

我知道 parseInt 工具,但如何使用“.” ?

抱歉菜鸟问题,我还是个初学者。

. 符号分割你的字符串。使用 Java 8 个流的解决方案:

int[] ipArray = Arrays.stream(ip.split("\."))
                .mapToInt(Integer::valueOf)
                .toArray();

编辑

Integer::parseInt 在这里可能更好,因为它 returns 原始 int 而不是像 Integer::valueOf 那样的 Integer。所以为了避免不必要的拆箱:

int[] ipArray = Arrays.stream(ip.split("\."))
                .mapToInt(Integer::parseInt)
                .toArray();

您可以使用String.split()方法。

例如:

String str = "192.168.0.1";
String[] strSplit = str.split("\.");
int[] intArray = new int[strSplit.length];
for(int i=0; i<intArray.length; i++){
    intArray[i] = Integer.parseInt(strSplit[i]);
}

之所以\.是因为.Java Regex Engine中的一个特殊字符。否则,如果字符串用方括号分开,那么 str.split("-") 就足够了。