【发布时间】:2020-06-15 05:19:33
【问题描述】:
我试图构建解析 IP 地址的功能程序。我看到一个错误。我想要一个更简单的代码来区分 ipv4 和 ipv6。这是JAVA代码。
import java.util.regex.Pattern;
class Solution {
String chunkIPv4 = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
Pattern pattenIPv4 =
Pattern.compile("^(" + chunkIPv4 + "\\.){3}" + chunkIPv4 + "$");
String chunkIPv6 = "([0-9a-fA-F]{1,4})";
Pattern pattenIPv6 =
Pattern.compile("^(" + chunkIPv6 + "\\:){7}" + chunkIPv6 + "$");
public String validIPAddress(String IP) {
if (pattenIPv4.matcher(IP).matches()) return "IPv4";
return (pattenIPv6.matcher(IP).matches()) ? "IPv6" : "Neither";
}
}
【问题讨论】:
-
您看到的错误是什么?
-
那是 Java,而不是 Scala。
-
@stefanobaghino 我更新了代码以在 scala 上进行规则。它未能通过“172.16.254.1”的测试用例。代码:var chunkIPv4: String = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]| 25[0-5])" var pattenIPv4: Pattern = Pattern.compile("^(" + chunkIPv4 + "\\.){3}" + chunkIPv4 + "$") var chunkIPv6: String = "([0- 9a-fA-F]{1,4})" var pattenIPv6: Pattern = Pattern.compile("^(" + chunkIPv6 + "\\:){7}" + chunkIPv6 + "$") def validIPAddress(IP: String): String = { if (pattenIPv4.matcher(IP).matches()) "IPv4" if ((pattenIPv6.matcher(IP).matches())) "IPv6" else "Neither" }
标签: scala functional-programming scala-collections