西安优秀的集团门户网站建设企业,禁忌网站,找不到网站后台怎么办,兰州企业网站建设哪家好题目描述#xff1a;
存在一种虚拟IPv4地址#xff0c;由4小节组成#xff0c;每节的范围为0-255#xff0c;以#号间隔#xff0c;虚拟IPv4地址可以转换为一个32位的整数#xff0c;例如#xff1a;
128#0#255#255#xff0c;转换为32位整数的结果为2147549183#…题目描述
存在一种虚拟IPv4地址由4小节组成每节的范围为0-255以#号间隔虚拟IPv4地址可以转换为一个32位的整数例如
128#0#255#255转换为32位整数的结果为2147549183Ox8000FFFF
1#0#0#0转换为32位整数的结果为16777216 0x01000000
现以字符串形式给出一个虚拟IPv4地址限制第1小节的范围为1-128即每一节范围分别为(1-128)#(0-255)#(0-255)#(0-255)要求每个IPv4地址只能对应到唯一的整数上。
如果是非法IPv4,返回invalid IP
输入描述
输入一行虚拟IPv4地址格式字符串
输出描述
输出一行按照要求输出整型或者特定字符
用例 输入 100#101#1#5 输出 1684340997 说明 无
代码
import java.util.Arrays;
import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner scnew 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],p2ip[1],p3ip[2],p4ip[3];if(p11 p1128 p2 0 p2255 p30 p3 255 p40 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; }
}