问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java算法 将ip地址段拆分成一个个

发布网友 发布时间:2022-04-23 23:58

我来回答

5个回答

热心网友 时间:2022-04-27 22:43

拆分啊,可以用下面的方法:
先定义一个String接受字符串进来,或者把字符串用“”括起来,然后用这个变量或者“”括起来的,substring截取字符串,条件是第一个~~前的,用indexof,(注意截取位置不包括最后一个),把其截取出来存入你想存的地方,成功后把字符串截取出来的部分从原字符串中去掉,同时也把第一个~~去掉,,然后继续截取第一个~~前的,一个循环把这些括起来,然后有多少ip,截取多少次,要放数组,放数组,要放list放list,还不你说了算?/?
public class testIPSplit {

/**
* @param args
* 例如58.63.239.160~~58.63.239.191变成 58.63.239.160 58.63.239.161 。。。。。问题补充:
* 有一个字符串的IP组:10.46.40.1--10.46.88.127,将这个ip地址段拆分为一个个ip地址,如
* 10.46.40.1;10.46.40.2;10.46.40.3。。。一直到10.46.88.125;10.46.88.126;10.46.88.127,
* 最后将这些单个地址存入一个数组中 要写一个算法
*
*
*/
public static void main(String[] args) {
String ipin="58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191";/*定义一个字符串把你要转换的ip地址接受进来*/
System.out.println("开始时接收到的字符串是:"+ipin);
int account=0;
for(int k=0;k<ipin.length()-1;k++){
if("~".equals(ipin.substring(k,(k+1))) && "~".equals(ipin.substring((k+1),(k+2)))){
account++;
}
}
if(!"~".equals(ipin.substring(ipin.length()-1, ipin.length())) && !"~".equals(ipin.substring(ipin.length()-2, ipin.length()-1))){
account++;
}
String[] ipout=new String[account];
int i=0;
int count=0;
for(i=0;i<ipin.length();i++){
if(ipin!=""){
if(count<1){
if(ipin.indexOf("~~")==-1 ){
count++;
ipout[i]=ipin;/*取出ip地址放入数组中*/
ipin=ipin.substring(0,ipin.length());
}
if(ipin.indexOf("~~")!=-1){
ipout[i]=ipin.substring(0,ipin.indexOf("~~"));/*取出ip地址放入数组中*/
ipin=ipin.substring(ipin.indexOf("~~")+2,ipin.length());
}
}
}
}
System.out.println("把里面的ip地址取出来后放入数组中,数组的长度是:"+ipout.length);
for(int j=0;j<ipout.length;j++){
System.out.println("从字符串中取出的第"+(j+1)+"个IP地址是:"+ipout[j]);
}
}
}
算了,本来也不是为了分才给你回答的,我花了点时间给你写了一个,我测试过,可以使用,到时候把类的名字改过来,注意下我有没有少粘贴括号的话,放到程序中,可以直接运行。
对了,粘贴一下显示结果吧:
***********************************************************************************************************************
开始时接收到的字符串是:58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191~~58.63.239.191~~58.63.239.160~~58.63.239.191
把里面的ip地址取出来后放入数组中,数组的长度是:9
从字符串中取出的第1个IP地址是:58.63.239.160
从字符串中取出的第2个IP地址是:58.63.239.191
从字符串中取出的第3个IP地址是:58.63.239.160
从字符串中取出的第4个IP地址是:58.63.239.191
从字符串中取出的第5个IP地址是:58.63.239.160
从字符串中取出的第6个IP地址是:58.63.239.191
从字符串中取出的第7个IP地址是:58.63.239.191
从字符串中取出的第8个IP地址是:58.63.239.160
从字符串中取出的第9个IP地址是:58.63.239.191
数组长度是随着你的输入变的记得那个分隔符,变了中间所有用到分隔符的也要变更

热心网友 时间:2022-04-28 00:01

int ipstart,ipend;
String ipstr="10.46.40.1--10.46.88.127";
int l1=256*256*256;
int l2=256*256;
String int2ip(int l){return l/l1+"."+l/l2+"."+l/256+"."+l%256; }
int ip2int(String ip){String[] sa=ip.split(".");return Integer.parseInt(sa[0])*l1+Integer.parseInt(sa[1])*l2+Integer.parseInt(sa[2])*256+Integer.parseInt(sa[3])};
String sa[]=ipstr.split("--");
ipstart=ip2int(sa[0]);ipend=ip2int(sa[1]);
String []result=new String[ipend-ipstart];
for(int i=0;i<result.length;i++)result[i]=int2ip(ipstart+i);

热心网友 时间:2022-04-28 01:36

string.spit("~~");

热心网友 时间:2022-04-28 03:27

String ip = "58.63.239.160~~58.63.239.191";
ip = ip.replace("~~", " ");
System.out.println(ip);

热心网友 时间:2022-04-28 05:35

第三个位置上的数字变化规律是40~88吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
沈阳2套房收取哪些费用 沈阳第二套房子上多少税 家里有一只拆家的二哈怎么办? 23款宝来悦行pro所有按键说明 酱香饼真正的发源地在那里,是从什么时候开始的 根据《建设工程安全生产管理条例》,施工单位主要负责人的安全生产职责不... panda和dad中的a发音一样吗 ...两个字中的拼音"a"发音时最主要的细微差别是什么? ...两个字中的拼音"a"发音时最主要的细微差别是什么? 很急啊啊啊啊... 处在发育期的颧骨,长期按压它会缩小吗 腊肉放冷藏可以放多久? 朋友圈屏蔽了对方、给对方朋友圈点赞对方能看见吗? 蒸馒头要放多少碱? 蒸馒头放什么东西蓬松? 蒸馒头放多少合适? 重装系统键盘不能用?灯不亮,怎么这样的? windows 10 如何关闭系统键盘? 进入系统键盘不好用了 xp的系统键盘使用的快捷键都有哪些? 系统键盘怎么打开? BIOS,系统键盘是什么 系统键盘怎么调用 win7系统键盘怎么打开 收银系统键盘在哪里可以找出来 特灵*空调四面出风嵌入式空调器制热时亮红灯,不启动,是什么原因 特灵中央空调怎么调制热 特灵变频中央空调CGVR0505AANA显示18E故障代码是什么引起的? 特灵中央空调出现5d 怎么解决? 特灵中央空调显示E9,怎么修复 特灵中央空调机组,报警,启动器通讯故障 int *ip2[4]应该怎样初始化 在ASP网页中,如何显示浏览者的ip及地理位置? 求C语言高人帮助,纯C编写IP转换数字程序 win10保存2个ip地址怎么设置,一个自动,一个是设定好的 自家晒的腊肉能放多久 IP各号段代表什么意思呢? 内外网通过ip能区分? 真空包装腊肉放冰箱里冷藏半年能吃吗 c语言以IP地址形式输出 IPAddress类的应用,构建的IPAddress[]数组要怎么添加啊? 如何计算两个IP之间的IP数量 int ip = 0x0808A8C0; 这是一个网络字节序的ip地址. 写一个函数, 将它以点分十进制的方式打印出来. java做ip转int时,碰到如下代码,对移位运算部分不太理解 保险公司会倒么 请问保险公司会不会倒闭呢?我身边的朋友不敢买保险他们老是纠结这个问题? 怎么看别人的qq达人天数 qq达人过了30怎么查看以前掉的记录? 怎么能够看到对方的qq达人天数 在生活中折叠隐形纱窗需要哪些技巧 折叠隐形纱窗型材怎么挑选的呀?