我有一個由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);
它可以更有效?或者我可以使用正則表達式嗎?哪一個更有效?
你要像'127.255.1.43'字符串匹配尋找'127.25'什麼時候? (我已經選擇了比你的問題中的'127.272.1.43'更爲理智的示例)... – 2012-04-17 07:39:42
@TimPietzcker對不起有人編輯並刪除了後面的點27 ..我已將其添加回 – 2012-04-17 07:51:09