Binary 案例转换二进制到十六进制故障

Binary 案例转换二进制到十六进制故障,binary,hex,Binary,Hex,嘿,伙计们,我的教授想在不使用java中的内置函数如toHex或toBinary()的情况下手动将二进制转换为十六进制,我想我找到了一种使用字符串将bin转换为十六进制的酷方法 StringBuffer psd = new StringBuffer(); int binary = 0; System.out.println("Enter a Binary number to be converted."); System.out.println("

嘿,伙计们,我的教授想在不使用java中的内置函数如toHex或toBinary()的情况下手动将二进制转换为十六进制,我想我找到了一种使用字符串将bin转换为十六进制的酷方法

StringBuffer psd = new StringBuffer();
        int binary = 0;
        System.out.println("Enter a Binary number to be converted.");
        System.out.println("Format: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx");
           Scanner keyboard = new Scanner(System.in);
           String x = keyboard.nextLine().replaceAll(" ", "/"); ///.trim().replaceAll(" ", "/");
           Scanner seperate = new Scanner(x).useDelimiter("/");
        //10 System.out.println(x);
        // System.out.println(seperate);
           while(seperate.hasNext()){
               String s1 = seperate.next();
              // binary = Integer.parseInt(s1);
        String HexString = null;
        //int binary = 1010;
        switch (s1){

                case 0001: HexString = "1";
                psd.append(HexString);
                break;
                case 0010: HexString = "2";
                psd.append(HexString);
                break;
                case 0011: HexString = "3";
                psd.append(HexString);
                break;
                case 0100: HexString = "4";
                psd.append(HexString);
                break;
                case 0101: HexString = "5";
                psd.append(HexString);
                break;
                case 0110: HexString = "6";
                psd.append(HexString);
                break;
                case 0111: HexString = "7";
                psd.append(HexString);
                break;
                case 1000: HexString = "8";
                psd.append(HexString);
                break;
                case 1001: HexString = "9";
                psd.append(HexString);
                break;
                case 1010: HexString = "A";
                psd.append(HexString);
                break;
                case 1011: HexString = "B";
                psd.append(HexString);
                break;
                case 1100: HexString = "C";
                psd.append(HexString);
                break;
                case 1101: HexString = "D";
                psd.append(HexString);
                break;
                case 1110: HexString = "E";
                psd.append(HexString);
                break;
                case 1111: HexString = "F";
                psd.append(HexString);
                break;

                //StringBuffer psd = new StringBuffer();
                //System.out.println(psd);
        }
        //System.out.println(binary);
        //System.out.println(psd);
        System.out.println(s1);
    }
          // System.out.println(binary);
            System.out.println(psd);
    //System.out.println(binary);
}
基本上所有的东西都能工作,但有前导零的情况除外 0110 0111 0101 …它不会更新变量 但是当它分析有一个前导1的情况时。它分别地转换它 有人能帮我一下我做错了什么吗。
提前谢谢。

试试
案例“0001”
而不是
案例0001
(和朋友们)是的,我也这么做了,但仍然没有用,我使用的是eclipse顺便说一句…但我仍然卡住了。