Java:如何将IP地址转换为二进制和十六进制

时间:2018-12-06 08:09:53

标签: java binary hex converters

我正在创建IP转换器。 您将必须使用扫描仪以字符串格式输入IP地址。

例如:String =“ 192.168.10.1”

如何使用split方法将String转换为Binary?

我的转换器还

import java.util.Scanner; 

public class Adapt {
    public static void main(String[] args){
        int zahl;
        Scanner scanner = new Scanner(System.in);
        System.out.println("Eingabe Zahl: ");
        zahl = scanner.nextInt();
        if (zahl > 0 && zahl <= 255) {
             String hex = Integer.toHexString(zahl);         
             String bin = Integer.toBinaryString(zahl);       
             System.out.println("Hex: " + hex);           
             System.out.println("Bin: " + bin);
        } else {
            System.out.println("Eingabe ungültig, nur Zahlen zwischen 0 - 255 verwenden.");
        }
    }
}

现在如何获取不带点的IP地址并将其转换为Binary和Hex?

输出必须看起来像:1111.1111.1111.1111

3 个答案:

答案 0 :(得分:1)

以“。”分隔输入。并将每个部分转换为二进制和十六进制

            StringBuilder binary = new StringBuilder();
    StringBuilder hexa = new StringBuilder();

    Scanner scanner = new Scanner(System.in);

    System.out.println("Eingabe Zahl: ");
    String zahl = scanner.nextLine();

    String[] ipArray = zahl.split("\\.");

    for (int i = 0; i < ipArray.length; i++) {
        int temp = Integer.parseInt(ipArray[i]);
        if (temp > 0 && temp <= 255) {

            hexa.append(Integer.toHexString(temp));
            hexa.append('.');
            binary.append(Integer.toBinaryString(temp));
            binary.append('.');
        }
    }
    hexa.deleteCharAt(hexa.length() - 1);
    binary.deleteCharAt(binary.length() - 1);

    System.out.println("Hex: " + hexa.toString());
    System.out.println("Bin: " + binary.toString());

答案 1 :(得分:0)

只需使用zahl.Split(".");并在单独的部分上使用.toBinaryString()方法即可。

答案 2 :(得分:0)

将输入作为字符串(在问题的第一行中已经提到过)的一种有效的方法,如下所示:

public class adapt {
public static void main(String[] args) {
    String input = null;
    Scanner scanner = new Scanner(System.in);

    System.out.println("Eingabe Zahl: ");
    input = scanner.nextLine();

    String hex = "";
    String bin = null;

    if (input != null) {
        input = input.replace(".", "");

        char[] messChar = input.toCharArray();
        for (int i = 0; i < messChar.length; i++) {
            hex += Integer.toBinaryString(messChar[i]) + " ";
        }
        bin = Integer.toHexString(Integer.parseInt(input));

        System.out.println("Hex: " + hex);
        System.out.println("Bin: " + bin);
    }
    else {
        System.out.println("Eingabe ungültig, nur Zahlen zwischen 0 - 255 verwenden.");
    }
}

}