isValidElement工作正常,但我遇到setParts问题: 如果传递的String中的ip地址有效,则设置实例变量部分以将其存储为4个整数值。
例如,如果ip =" 192.000168.0.0000001",则部分应为{192,168,0,1}。如果传递的IP地址无效,则部分应为{0,0,0,0}
public static boolean isValidElement(String token) {
try{
int foo = Integer.parseInt("token");
if(foo >= 0 && foo <= 255)
return true;
else
return false;
} catch (NumberFormatException ex){
return false;
}
}
public void setParts(String ip) {
int i;
if (isValidElement(ip) == false){
parts = new int[]{0,0,0,0};
} else
if (isValidElement(ip) == true){
for(i=0; i<parts.length; i++){
parts[i] = ip;
}
}
isValidElement是我的方法,检查传递的字符串是否有效,哪个工作正常,部分[4]是我的数组。
感谢任何帮助,谢谢。
答案 0 :(得分:0)
尝试在ip
字符上拆分.
字符串,然后尝试将该数组中的每个String
转换为int
。如果任何转换失败,请重置整个parts
阵列:
try {
String[] ipArr = ip.split(Pattern.quote("."));
for (int i = 0; i < ipArr.length; i++) {
parts[i] = Integer.parseInt(ipArr[i]);
}
} catch (NumberFormatException e) {
parts = new int[4];
}