Java 如何用IP和端口划分字符串?
我有这样一句话: 176.32.37.27:777754.38.156.202:777751.68.208.5:7777 如何使用split函数或类似函数从这个IP端口字符串推断出周期?为此: 176.32.37.27:7777 54.38.156.202:7777 51.68.208.5:7777Java 如何用IP和端口划分字符串?,java,string,split,substring,Java,String,Split,Substring,我有这样一句话: 176.32.37.27:777754.38.156.202:777751.68.208.5:7777 如何使用split函数或类似函数从这个IP端口字符串推断出周期?为此: 176.32.37.27:7777 54.38.156.202:7777 51.68.208.5:7777 端口是相同的,只是因为它们有4个数字因为您知道端口的长度始终是4,所以您可以基于冒号和4个数字的查找进行拆分: String test = "176.32.37.27:777754.38.156.
端口是相同的,只是因为它们有4个数字因为您知道端口的长度始终是4,所以您可以基于冒号和4个数字的查找进行拆分:
String test = "176.32.37.27:777754.38.156.202:777751.68.208.5:7777";
System.out.println(
Arrays.toString(
test.split("(?<=:\\d{4})")
)
);
另见
Java模式中的lookback 您可以使用以下代码拆分IP地址
String str = "176.32.37.27:777754.38.156.202:777751.68.208.5:7777";
String ipAdds[] = str.split("(?<=:\\d{4})");
for (String ipAdd: ipAdds)
System.out.println(ipAdd);
首先是:176.32.37.27:777754.38.156.202:77777751.68.208.5:7777。分开?谢谢!但是当我想从数组中获取第一个值时,会弹出数组类型expected error;找到:'java.lang.Stringэ。我为变量arrayServers声明了一个类,但字符串arrayServers=Arrays没有任何更改。toStringgetServers.get.split?Arrays.toString仅将数组转换为其字符串表示形式,在我的示例中,为了方便打印。不能通过数组索引访问字符串部分。TL;您只需要:String[]arrayServers=getServers.get.split?@Gavin您可以。高达65535。但是OP的用例似乎只暗示了4位数的端口。哦,对不起,我本想删除它,因为我重读了这篇文章,发现了大小限制。对不起,我的不好。@Gavin别担心,在我看来这是个合法的问题。
String str = "176.32.37.27:777754.38.156.202:777751.68.208.5:7777";
String ipAdds[] = str.split("(?<=:\\d{4})");
for (String ipAdd: ipAdds)
System.out.println(ipAdd);