题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
String s = scanner.nextLine();
String s1 = scanner.nextLine();
System.out.println(Main.toten(s));
System.out.println(Main.toip(s1));
}
}
public static long toten(String s){
String[] split = s.split("\\.");
String longs="";
for (int i = 0; i < split.length; i++) {
if (Integer.parseInt(split[i])<0||Integer.parseInt(split[i])>255){
break;
}else {
String s1 = Integer.toString(Integer.valueOf(split[i]), 2);
HashMap<Integer, Integer> hm = new HashMap<>();
hm.put(0,s1.length());
if (s1.length()<8){
for (int j = 0; j <8-hm.get(0); j++) {
s1="0"+s1;
}
}
longs=longs+s1;
}
}
Long i1 = Long.parseLong(longs, 2);
return i1;
}
public static String toip(String s){
Long it = Long.valueOf(s);
String string = Long.toString(it, 2);
HashMap<Integer, Integer> hs = new HashMap<>();
hs.put(0,string.length());
if (string.length()<32){
for (int i = 0; i <32-hs.get(0); i++) {
string="0"+string;
}
}
// System.out.println(string);
ArrayList<String> st = new ArrayList<>();
for (int i = 0; i <string.length(); i=i+8) {
String substring = string.substring(i, i+8);
st.add(substring);
}
// System.out.println(st);
String su="";
for (int i = 0; i <4; i++) {
int i1 = Integer.parseInt(st.get(i), 2);
String s1 = String.valueOf(i1);
if (i<3) {
su = su + s1 + ".";
}else {
su = su + s1;
}
}
return su;
}
}

阿里云成长空间 747人发布