如何在 android 中提取 IP 地址的前三段

How to extract the first three segments of an IP address in android

示例:

xxx.xxx.xxx.xxx 是一种 IP 地址格式,我只想获取前三个段(带点):xxx.xxx.xxx.

另一个例子:

192.168.0.160 我只想要 192.168.0.

String[] splittedArray = ipAddressString.split("\.");
String firstThreeSegments = splittedArray [0] + "." + splittedArray [1] + "." + splittedArray [2] + ".";

我会说最简单的方法(IMO)是使用(来自 Apache Commons)StringUtils.ordinalIndexOf() 找到第三个周期的索引值,然后使用 substring() 取子字符串从 0 到该索引值。

例如:

StringUtils.ordinalIndexOf("192.168.0.160", ".", 3)  == 9

然后就可以用这个索引取子串了。

您可以使用String#replaceFirst

String firstThree = ip.replaceFirst("\d+$", "");

这将替换所有有效的 IP 地址最后一部分并将其替换为空字符串。

RegEx Demo

String partialIp = ipAddress.substring(0, ipAddress.lastIndexOf(".")+1);