首页 > 解决方案 > 方法中的局部变量未更新

问题描述

我在这种方法上遇到了麻烦,其中作为字符串的十六进制数输入了前面的“0x”并输出的是二进制等价物。例如“0x000A”应该返回“1010”。我在使用变量 ret 时遇到问题。我尝试在 forloop 中更新它,但是当我返回它时,它仍然具有默认值“”。如果我不在 return 语句中使用 ret,我会收到一条消息“未使用局部变量 binaryNumber 的值”。我想知道我是否可以得到一些澄清。非常感谢!

public static String hexToIntNBin(String hexInput) {
        
        // array of binary digits that correspond to hexadecmial
        String[] binaryArray = {"0000","0001","0010","0011",
                "0100","0101","0110","0111",
                "1000","1001","1010","1011",
                "1100","1101","1110","1111"};
        
        String binaryNumber = "";
        
        // loops backward through the input string after preceeding 0x
        // converts to binary
        for(int i=2; i<hexInput.length(); i++) {
            // Takes care of letter cases (10-16)
            if(hexInput.substring(i,i+1) == "A") {
                binaryNumber += binaryArray[10];
            }
            else if(hexInput.substring(i,i+1) == "B") {
                binaryNumber += binaryArray[11];
            }
            else if(hexInput.substring(i,i+1) == "C") {
                binaryNumber += binaryArray[12];
            }
            else if(hexInput.substring(i,i+1) == "D") {
                binaryNumber += binaryArray[13];
            }
            else if(hexInput.substring(i,i+1) == "E") {
                binaryNumber += binaryArray[14];
            }
            else if(hexInput.substring(i,i+1) == "F") {
                binaryNumber += binaryArray[15];
            }
            
            
        }
        return "Your number is ";
        
    }

标签: javavariablesreturnlocal-variables

解决方案


推荐阅读