以ip地址样式打印字符串

时间:2015-04-16 09:52:35

标签: java arrays string

我有一个数组fip[i],其中包含[10101100, 00010000, 00001010, 00000000]fip1逐个获取十进制值。最后,我想将值存储在abc变量中,如IP地址并打印出来:

172. 16. 10. 0

代码:

for(int i=0;i<4;i++)
       {
        fip1[i] = Integer.parseInt(fip[i],2);
        if(i!=3) System.out.print(".");
       }
 abc = Arrays.toString(fip1);

3 个答案:

答案 0 :(得分:1)

您正在通过system.out.println()

混合数组和输出

这就是你想要的:

String output = "";
for (int i = 0; i < 4; i++) {
    output += Integer.parseInt(fip[i], 2);
    if (i != 3)
        output += ".";
}
System.out.println(output);

答案 1 :(得分:1)

不是100%确定你在问什么,但如果是“我如何将IP地址值存储在字符串中”,你可以使用你已经拥有的代码,但是替换 System.out。 println 语句,调用 StringBuilder

例如......

StringBuilder builder = new StringBuilder();

for(int i=0;i<4;i++)
   {
    builder.append(Integer.parseInt(fip[i],2));
    if(i!=3) builder.append(".");
   }

String abc = builder.toString();

System.out.println(abc); // Should print your IP address...

答案 2 :(得分:0)

试试这个:

final String[] fip = { "10101100", "00010000", "00001010", "00000000" };
final StringBuilder strBuilder = new StringBuilder();
for (final String str : fip) {
    strBuilder.append(Integer.parseInt(str, 2));
    if (!fip[fip.length - 1].equals(str)) {
        strBuilder.append(".");
    }
}
System.out.println(strBuilder);