【发布时间】:2022-02-04 21:09:45
【问题描述】:
我有两个由String 表示的IP 地址。
String first = "192.168.0.1";
String second = "192.168.0.5";
我需要整理一下:
192.168.0.5
192.168.0.4
192.168.0.3
192.168.0.2
到目前为止,这是我的代码:
private static void method(String first, String second){
String tempFirst = first.replace(".", "");
String tempSecond = second.replace(".", "");
int ipFirst = Integer.valueOf(tempFirst);
int ipSecond = Integer.valueOf(tempSecond);
while (ipSecond > ipFirst){
System.out.println(ipSecond);
ipSecond--;
}
}
我需要转换这些方法的输出:
19216805
19216804
19216803
19216802
到:
192.168.0.5
192.168.0.4
192.168.0.3
192.168.0.2
如何实现?
【问题讨论】:
-
192.168.10.1 > 192.168.9.1
-
您的邮件可能是XY Problem,您在其中询问如何解决特定代码问题,而最佳解决方案是使用完全不同的方法。我自己,我会创建自己的
public class IpAddress implements Comparable<IpAddress>类,它包含 4 个整数,并以适当的方式实现 compareTo。 -
只需将其转换为 32 位数字,排序,然后再转换回来。
-
我会在“.”上拆分字符串,而不是替换。将每个元素转换为整数。然后将第一个元素乘以 10 亿,第二个元素乘以一百万,第三个元素乘以 1000,然后将 4 相加。然后可以安全地对它们进行排序。
-
我的错,我误读了这个问题,不过我会留下previous dupe 作为链接。 排序可能是用词不当。您可能的意思是:打印两个给定的所有 IP 地址,或者其他什么..