Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用IP和端口划分字符串?_Java_String_Split_Substring - Fatal编程技术网

Java 如何用IP和端口划分字符串?

Java 如何用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.

我有这样一句话:

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.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);