首页 > 解决方案 > 在 java 中进行二进制到十六进制转换时,我的答案前面总是有一个空值

问题描述

所以我的代码可以工作并输出正确的答案,但是它在答案中给了我一个空值。

private void toHex() {
    char hexNum[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    String binary = num;

    if(binary.length() % 4 != 4) {
        while(binary.length() % 4 != 0) {
            binary = "0" + binary;
        }
    }
    for(int i = 0; i < binary.length(); i+=4) {
        String temp2 = binary.substring(i, i+4);
        int sum = 0;
        sum += Integer.parseInt(temp2.charAt(0) + "")*8; 
        sum += Integer.parseInt(temp2.charAt(1) + "")*4; 
        sum += Integer.parseInt(temp2.charAt(2) + "")*2; 
        sum += Integer.parseInt(temp2.charAt(3) + "")*1; 
        hex = hex + hexNum[sum];
        sum = 0;
        temp2 = "";
    }
}
private void outHex() {
    System.out.print("Your number from binary to hexadecimal is: 0x" + hex);
    pw.print("Your number from binary to hexadecimal is: 0x" + hex);
}

顺便说一句,我将 num 声明为方法外部的字符串,它是用户输入的数据。十六进制也被声明为方法之外的字符串。

标签: javaeclipse

解决方案


我敢打赌,您将十六进制声明为。

String hex;

默认为null.

尝试以下操作:

String hex = "";

这是一个空字符串。


推荐阅读