220.10.5.19如何自动补0 本帖最后由 pumanchawulaowu 于 2010-04-26 08:34:21 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String ip = "210.2.1.90"; String[] ipArray = ip.split("\\."); String a = String.format("%03d", Integer.parseInt(ipArray[0])); String b = String.format("%03d", Integer.parseInt(ipArray[1])); String c = String.format("%03d", Integer.parseInt(ipArray[2])); String d = String.format("%03d", Integer.parseInt(ipArray[3])); String usrIp = a+"."+b+"."+ c + "." + d; public class DealIp { public String addZero(String ip){ String result=""; //用保存处理后的结果 String []array=ip.split("\\."); //这个函数将传入的字符串根据这个小点来分解,因为这个点式一个转义字符,所以需要写成"\\." for(int i=0;i<array.length;i++){ while(array[i].length()<3){ //一共被分成了四个字符串,字符串里已经没有了小点,如果一个字符串的长度小于三,那么就在前面加零 array[i]="0"+array[i]; } if(i!=array.length-1){ //加完后,再继续在后面加上一个小点,因为最后一个不需要加,所以用if控制一下 array[i]=array[i]+"."; } } for(int i=0;i<array.length;i++){ result+=array[i]; //将处理好的四个字符串连起来,这四个分别是 062. 004. 022. 115 } return result; } public static void main(String args[]){ DealIp deal=new DealIp(); System.out.println(deal.addZero("62.4.22.115")); }} 0 我把2楼的修改了一下,用javap试了一下,这样可能好些:public class Test1 { public static void main(String[] args) { String ip = "210.2.1.90"; String[] ipArray = ip.split("\\."); StringBuilder s = new StringBuilder(); for(int i = 0; i < ipArray.length; i++) { s.append(String.format("%03d", Integer.parseInt(ipArray[i])) + "."); } s.delete(s.length() - 1, s.length()); System.out.println(s); }} 解释一下:StringBuiler的效率要高于String,对有关String用过javap,就知道其实String的操作实际是用的StringBuilder。所以直接用StringBuilder代替String类型的操作,效率会好些。 s.delete(s.length() - 1, s.length());//这是去除210.002.001.090.最后面的那个点 请问有什么书籍是专门讲JAVA的GUI编程的吗? IO流简单问题 求解一道java程序题,估计不是很难。。。不过对我就。。。。 problem occured: Launching A(time of error 2008年。。。) 这是什么错误。。。 菜鸟问题.确实不懂啊!! java中的一道选择题,好象很麻烦.. 装了JBuilder7,机器跑起来有些慢,怎么办? linux下的一个java问题,急 用jdk运行HelloWorld时报错,肯请各位高手解救 有谁了解网络机器人的JAVA设计,Spider,Bot,Aggregator io复制图片中遇到的问题 snmp4j问题
String[] ipArray = ip.split("\\."); String a = String.format("%03d", Integer.parseInt(ipArray[0]));
String b = String.format("%03d", Integer.parseInt(ipArray[1]));
String c = String.format("%03d", Integer.parseInt(ipArray[2]));
String d = String.format("%03d", Integer.parseInt(ipArray[3]));
String usrIp = a+"."+b+"."+ c + "." + d;
public String addZero(String ip){
String result=""; //用保存处理后的结果
String []array=ip.split("\\."); //这个函数将传入的字符串根据这个小点来分解,因为这个点式一个转义字符,所以需要写成"\\."
for(int i=0;i<array.length;i++){
while(array[i].length()<3){ //一共被分成了四个字符串,字符串里已经没有了小点,如果一个字符串的长度小于三,那么就在前面加零
array[i]="0"+array[i];
}
if(i!=array.length-1){ //加完后,再继续在后面加上一个小点,因为最后一个不需要加,所以用if控制一下
array[i]=array[i]+".";
}
}
for(int i=0;i<array.length;i++){
result+=array[i]; //将处理好的四个字符串连起来,这四个分别是 062. 004. 022. 115
}
return result;
}
public static void main(String args[]){
DealIp deal=new DealIp();
System.out.println(deal.addZero("62.4.22.115"));
}
} 0
public static void main(String[] args) {
String ip = "210.2.1.90";
String[] ipArray = ip.split("\\."); StringBuilder s = new StringBuilder(); for(int i = 0; i < ipArray.length; i++) {
s.append(String.format("%03d", Integer.parseInt(ipArray[i])) + ".");
}
s.delete(s.length() - 1, s.length()); System.out.println(s);
}
}
StringBuiler的效率要高于String,对有关String用过javap,就知道其实String的操作实际是用的StringBuilder。所以直接用StringBuilder代替String类型的操作,效率会好些。 s.delete(s.length() - 1, s.length());//这是去除210.002.001.090.最后面的那个点