我有一个由 IP 地址串联形成的字符串,例如:
"127.272.1.43;27.27.1.43;127.127.27.67;128.27.1.43;127.20.1.43;111.27.1.43;127.27.1.43;"
当给定一个新的 IP 地址时,我需要检查 IP 的前半部分是否是 IP 地址字符串的一部分。例如,如果"127.27.123.23"
给出,我需要查找字符串中是否有任何 IP 地址以"127.27"
我有以下代码,其中userIP
="127.27."
int i = StringUtils.indexOf(dbIPString, userIP);
do {
if (i > 0) {
char ch = dbIPString.charAt(i - 1);
if (ch == ';') {
System.out.println("IP is present in db");
break;
} else {
i = StringUtils.indexOf(dbIPString, userIP, i);
}
} else if (i == 0) {
System.out.println("IP is present in db");
break;
} else {
System.out.println("IP is not present in db");
}
} while (i >= 0);
能不能更有效率?或者我可以使用正则表达式吗?哪个效率更高?