Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何将ip地址转换为二进制和十六进制_Java_Binary_Hex_Converters - Fatal编程技术网

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

Java:如何将ip地址转换为二进制和十六进制,java,binary,hex,converters,Java,Binary,Hex,Converters,我正在创建一个IP转换器。 您必须使用字符串格式的扫描仪键入IP地址 例如:String=“192.168.10.1” 如何使用split方法将字符串转换为二进制 我的转换器: import java.util.Scanner; public class Adapt { public static void main(String[] args){ int zahl; Scanner scanner = new Scanner(System.in);

我正在创建一个IP转换器。 您必须使用字符串格式的扫描仪键入IP地址

例如:String=“192.168.10.1”

如何使用split方法将字符串转换为二进制

我的转换器:

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.");
        }
    }
}
import java.util.Scanner;
公共阶级适应{
公共静态void main(字符串[]args){
国际扎尔;
扫描仪=新的扫描仪(System.in);
System.out.println(“Eingabe Zahl:”);
zahl=scanner.nextInt();

如果(zahl>0&&zahl只需使用
zahl.Split(“.”)
,并在单独的片段上使用
.tobinarysting()
方法。

将输入作为字符串(您已经在问题的第一行中提到)来完成此操作的有效方法之一如下:

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.");
    }
}
公共类自适应{
公共静态void main(字符串[]args){
字符串输入=null;
扫描仪=新的扫描仪(System.in);
System.out.println(“Eingabe Zahl:”);
输入=scanner.nextLine();
字符串十六进制=”;
字符串bin=null;
如果(输入!=null){
输入=输入。替换(“.”,“”);
char[]messChar=input.toCharArray();
对于(int i=0;i

}

将输入按“.”拆分,并将每个部分转换为二进制和十六进制

            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());
StringBuilder binary=new StringBuilder();
StringBuilder hexa=新的StringBuilder();
扫描仪=新的扫描仪(System.in);
System.out.println(“Eingabe Zahl:”);
字符串zahl=scanner.nextLine();
字符串[]ipArray=zahl.split(“\\”);
对于(int i=0;i如果(temp>0&&temp,这将离开。在
hexa
binary
字符串的末尾。@TheJavaGuy IvanMilosavljević感谢您的发现:-)我修改了我的答案。