题目描述
给定ipv4字符串,可能含有数字,圆点,空格。 如“192. 168 . 1. 1 2 3 ”,要求将其做格式化成一个标准ipv4字符串,然后转换成为32位整型值形式的ipv4.
/**
* https://www.nowcoder.com/questionTerminal/66ca0e28f90c42a196afd78cc9c496ea
* @param s
* @return
*/
public static int getIPV4(String s){
int error = 0;
if(s==null || s.length()==0 || !s.contains(".")){
return error;
}
String[] subs = s.split("\\.");
//不是4段
if(subs.length!=4){
return error;
}
int result = 0;
for(int i=subs.length-1;i>=0;i--){
int sub = Integer.parseInt(subs[i].replaceAll(" ",""));
if(sub>255){
return error;
}
if(i == 2){
sub = sub<<8;
}else if(i ==1){
sub = sub<<16;
}else if(i == 0){
sub = sub << 24;
}
result +=sub;
}
return result;
}
网友评论