1

快速提问:我想使用句点 (.) 作为分隔符来拆分 IP 地址(例如 192.168.0.1)。我似乎无法正确处理。我尝试运行不同的场景以查看是否是我的大脑功能障碍,但是当在数字而不是句点之间放置空格时,一切似乎都很好。我如何成功地做到这一点?

这是我用来运行它的一段脚本。

String ipAddress = "10.0.0.2";
String[] split = ipAddress.split(".");
//It's supposed to split into four parts and each part needs to be assigned to a var
String Part1 = split[0];
String Part2 = split[1];
String Part3 = split[2];
String Part4 = split[3];
//Just to make sure that it worked...
System.out.println(Part1 + " " + Part2 + " " + Part3 + " " + Part4);

在您质疑我的知识之前,我正在学习新的 Java 函数,但有时我无法使其工作。

保持好状况!

4

4 回答 4

1

尝试

String[] split = ipAddress.split("\\.");

split()方法接受正则表达式,而不是字符串,并且DOT正则表达式中具有特殊含义。所以你需要用双斜杠转义它。

或者你可以使用Pattern.quote

String[] split = ipAddress.split(Pattern.quote("."));
于 2013-04-06T13:10:47.980 回答
1

试试这个

  String parts[] = ipAddress.split("\\.")    //this is double back slash
于 2013-04-06T13:11:11.017 回答
1

在 Java 中有一个处理 IP 地址的类,让您无需尝试自己解析字符串即可获得正确的表示:

InetAddress a = InetAddress.getByName("10.0.0.2");
byte[] b = a.getAddress();
System.out.println(b[0]+" "+b[1]+" "+b[2]+" "+b[3]);
于 2013-04-06T13:17:27.087 回答
0

采用 String parts[] = ipAddress.split("\\.")

于 2013-04-06T13:19:12.830 回答