【发布时间】:2020-04-17 00:00:40
【问题描述】:
我是一个尝试学习 Java 的新手。目前正在制作一些小程序来练习。
我正在尝试制作一个程序,给定用户所需的 IPV4 地址、网络掩码和子网数量,可以输出每个子网的网络 IP、主机 IP 范围和广播 IP。
问题是,我怎样才能将用户给定的 IPV4 地址转换为像整数一样的行为来添加数字并更早地显示它?
例如:
给定 IPV4 地址:10.2.0.0/19
所需子网:40
子网 0 将从 10.2.0.0 开始到 10.2.0.127。
如何将 10.2.0.0 转换为 10.2.0.127?而从这最后一个到 10.2.0.255,就是下一个子网 1 的 ip 范围。
到目前为止,我已经尝试过:
while(Subnet > scounter) {
String finalip = IPV4Add.substring(0, IPV4Add.length() - 1) + (MagicNum - 1);
System.out.println("Subnet " + scounter + " Net Address: " + IPV4Add + " to " + finalip);
scounter++;
}
输出(只有 3 行而不是 39 行):
Subnet 0 Net Address: 10.2.0.0 to 10.2.0.127
Subnet 1 Net Address: 10.2.0.0 to 10.2.0.127
Subnet 2 Net Address: 10.2.0.0 to 10.2.0.127
其中Subnet是用户需要的子网数量,scounterto是统计输出的子网数量,MagicNum是应添加到 ip 以获得下一个子网,在本例中为 128。
如何编辑字符串以使其表现得像整数并给我,在每个循环中添加:
Subnet 1 Net Address: 10.2.0.128 to 10.2.0.255
Subnet 2 Net Address: 10.2.1.0 to 10.2.1.127
Subnet 3 Net Address: 10.2.1.128 to 10.2.1.255
等等?
提前致谢。
【问题讨论】:
-
谢谢,split() 方法给了我灵感。
标签: java string integer ip transform