나는 예를 들어, IP 주소의 연결에 의해 형성되는 문자열이 : 새로운 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"
로 시작하는 경우 예를 들어, "127.27.123.23"
경우 주어진 내가 찾아야 I 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.272.1.43'보다 더 정상적인 예제를 선택했습니다.) ... –
@TimPietzcker 미안 해요 누군가가 편집하고 27 점 뒤에있는 점을 제거했습니다. 나는 그것을 다시 추가했습니다 –