1
따라서는 IPv4 문자열은이 문자열이 배열 작업에 영향을 미치지 않는 이유는 무엇입니까?
public static boolean isValidElement(String token) {
String[] validString = token.split("\\.");
if (validString.length != 4)
return false;
for (String str: validString) {
try{
int i = Integer.parseInt(str);
if ((i < 0) || (i > 255)) {
return false;
}
}
catch(NumberFormatException ex){
return false;
}
}
return true;
}
을 isValidElement에 전달 벌금과 멋쟁이 모든 먹으 렴하지만 문자열이 문자열을 배열로 저장하는 방법에 전달 될 때, 그것은 일을 doenst된다.
public void setParts(String ip) {
parts = new int[4];
if (!isValidElement(ip))
for(int i = 0; i <= parts.length; i++)
parts[i] = 0;
else
try {
String[] ipArr = ip.split("\\.");
for (int i = 0; i < ipArr.length; i++) {
parts[i] = Integer.parseInt(ipArr[i]);
}
}
catch (NumberFormatException e) {
parts = new int[4];
}
}
어디에 잘못 되었습니까?/무엇이 없습니까?
나는 JUnit 테스트는하지만 내가하지 제대로 인스턴스 배열 부분을 다시 적이assertEquals(4, a.length);
에서
public void testSetPartsString() {
correct1.setParts("12.14.16.18");
int[] a = correct1.getParts();
assertEquals(4, a.length);
assertEquals(12, a[0]);
assertEquals(14, a[1]);
assertEquals(16, a[2]);
assertEquals(18, a[3]);
작동을 멈 춥니 다 있나요?
는 [MCVE]을 게시하시기 바랍니다. – c0der
중단 점을 설정하고 디버그 모드로 코드를 보는 것이 어떻습니까? –
@ TimmyJim setParts를 통해 중단 점을 넣었지만 나를 위해 작동하지 않습니다. –