题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { private static final int N = 4; public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String ipVnum = in.next(); if(ipVnum.contains(".")){ System.out.println(ip2num(ipVnum)); }else{ System.out.println(num2ip(ipVnum)); } } } private static String ip2num(String result){//256进制转为10进制 String[] a = result.split("\\."); Long num = (long)0; for(int i = 0; i < N; i++){ num = num * 256 + Long.parseLong(a[i]); } return Long.toString(num); } private static String num2ip(String result){//10进制转为256进制 Long num = Long.parseLong(result); LinkedList<String> result2= new LinkedList<String>(); for(int i = 0; i < N; i++){ result2.add(Long.toString(num % 256)); num /= 256; } Collections.reverse(result2); return String.join(".",result2); } }