我的二进制转换器不知何故不起作用

时间:2014-10-04 12:01:58

标签: java binary converter

这是我的代码:

import java.util.*;
public class binary{

public static void main(String args[])
{
    //input thing
    Scanner read = new Scanner(System.in);
    //variables
    String result = "";
    int input;
    //input
    input =read.nextInt();
    toBinary(input,result);
    System.out.println("Your binary is" + result);

}
public static String toBinary(int a,String b){
    StringBuilder sb = new StringBuilder();
    int y;
    int z=2;
    while(a >= 1){
        y = a%2;
        a/=z;
        sb.append(y);

    }
    b = sb.toString();
    invert(b);
    return b;
}
 public static String invert(String s) {
        String temp = "";
        for (int i = s.length() - 1; i >= 0; i--)
            temp += s.charAt(i);
        return temp;
    }
}

你能帮我解决什么错误,导致回报空白。当我输入一个数字时,它就会显示为“你的二进制文件”。

1 个答案:

答案 0 :(得分:0)

您的主要问题是您没有存储方法的返回值。 toBinary(input,result);会返回转化结果,但您不会将其存储到任何变量中。写result = toBinary(input,result);来解决这个问题。

这同样适用于您的invert电话。写b = invert(b);以保存b的反转值。或者写return invert(b);立即返回。

只是为了确保:行b = sb.toString();不会更改作为方法参数传递的变量result。您正在为变量编写新的对象引用。旧对象在内存中保持不变。此外,变量result仍然引用旧对象。