如何将 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("-")
就足够了。
我正在尝试从 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("-")
就足够了。