有问题改变数组中的字符串

时间:2016-09-10 02:49:53

标签: java arrays string

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]是我的数组。

感谢任何帮助,谢谢。

1 个答案:

答案 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];
}