Java 无法对数组类型字符串[]调用拆分(字符串)
我想实现一个将ip检查到数组中的代码。我试过这个:Java 无法对数组类型字符串[]调用拆分(字符串),java,Java,我想实现一个将ip检查到数组中的代码。我试过这个: // 123.11.1.1, 123.1.1.12, 123.322.12.1 String[] list = merchant.getAllowed_ip_address().split(","); String ip = request.getRemoteAddr(); for (ip : list.split(",")) { if (!ip.trim
// 123.11.1.1, 123.1.1.12, 123.322.12.1
String[] list = merchant.getAllowed_ip_address().split(",");
String ip = request.getRemoteAddr();
for (ip : list.split(",")) {
if (!ip.trim().equals(request.getRemoteAddr().trim()))
{
// Not in list
}
}
但是我无法在数组类型字符串[]上调用splitString。您知道如何解决此问题吗?当ip位于列表中时,此选项将列表中的变量设置为true,否则设置为false。进行了严格的相等比较,如果需要,可以用更复杂的东西代替
// 123.11.1.1, 123.1.1.12, 123.322.12.1
String list = merchant.getAllowed_ip_address();
String ip = request.getRemoteAddr().trim();
boolean inthelist = false;
for (String aip : list.split(",")) {
if (aip.trim().equals(ip)) {
inthelist=true;
break;
}
}
您不能在列表上进行拆分,一旦拆分了字符串,您就拥有了一个包含所有IP的数组,然后可以进行检查
// 123.11.1.1, 123.1.1.12, 123.322.12.1
String[] list = merchant.getAllowed_ip_address().split(",");
String ip = request.getRemoteAddr();
for (String allowedIP : list) {
if (!ip.trim().equals(allowedIP.trim())) {
// Not in list
}
}
此外,为了简单起见,您可以这样做
String ip = request.getRemoteAddr();
boolean notExist = Arrays.stream(merchant.getAllowed_ip_address().split(","))
.map(String::trim)
.noneMatch(ip::equals);
无法对数组调用剥离。该数组已包含剥离的IP。您只需检查值是否匹配。对数组中的每个项使用拆分
for (int i=0;i<list.length ;i++) {
if (!ip.trim().equals(list[i].trim()))
{
// Not in list
}