題目描述:
存在一種虛擬IPv4地址,由4小節(jié)組成,每節(jié)的范圍為0-255,以#號間隔,虛擬IPv4地址可以轉換為一個32位的整數(shù),例如:
128#0#255#255,轉換為32位整數(shù)的結果為2147549183(Ox8000FFFF)
1#0#0#0,轉換為32位整數(shù)的結果為16777216 (0x01000000)
現(xiàn)以字符串形式給出一個虛擬IPv4地址,限制第1小節(jié)的范圍為1-128,即每一節(jié)范圍分別為(1-128)#(0-255)#(0-255)#(0-255),要求每個IPv4地址只能對應到唯一的整數(shù)上。
如果是非法IPv4,返回invalid IP
輸入描述:
輸入一行,虛擬IPv4地址格式字符串
輸出描述:
輸出一行,按照要求輸出整型或者特定字符
用例:
輸入 |
100#101#1#5 |
輸出 |
1684340997 |
說明 |
無文章來源:http://www.zghlxwxcb.cn/news/detail-702344.html |
代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-702344.html
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println(getResult(sc.nextline()));
}
public static String getResult(String s){
try{
Integer[] ip = Arrays.stream(s.split('#')).map(Integer::parseInt).toArray(Integer[]::new);
if(ip.length !=4)return "invalid IP";
int p1 =ip[0],p2=ip[1],p3=ip[2],p4=ip[3];
if(p1>=1 && p1<=128 && p2 >=0 && p2<=255 && p3>=0 && p3 <=255 && p4>=0 && p4<= 255 ){
String tmp = getHexString(p1)+getHexString(p2)+ getHexString(p3) + getHexString(p4);
return Long.parseLong(tmp,16)+"";
} else{
return "invalid IP";
}
}catch(Exception e){
return "invalid IP";
}
}
public static String getHexString(int num){
String tmp = Integer.toHexString(num);
if(tmp.length()< 2)tmp ="0" + tmp;
return tmp;
}
}
到了這里,關于華為OD:IPv4地址轉換成整數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!