将字符串从命令行转换为二进制 - Java

时间:2017-11-05 22:19:01

标签: java

我尝试将在命令行中输入的字符串转换为数字,然后通过方法将该字符串转换为二进制字符串。然后,将字符串方法返回main,并将输出显示为表示二进制的字符串。我收到一些错误消息,非常感谢任何帮助:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:592)
    at java.lang.Integer.parseInt(Integer.java:615)
    at Lab04.decimalTobinary(Lab04.java:20)
    at Lab04.main(Lab04.java:13)

import java.util.Scanner;
import java.lang.NumberFormatException;

public class Lab04
{

public static void main(String[] args) { 

  String d_s = new String(); // stores command line input argument
  args[0] = d_s;
  String b_s = new String();

  b_s = decimalTobinary(d_s); // decimalString from command argument 

  System.out.print(b_s);
} 

public static String decimalTobinary(String decimal) { 

    int n = Integer.parseInt(decimal);
    String s = "";

    while (n > 0)
    {
        s =  ( (n % 2 ) == 0 ? "0" : "1") +s;
        n = n / 2;
    }
    return s;
} 

}

1 个答案:

答案 0 :(得分:3)

您以错误的方式使用了赋值运算符:意图是将args[0]分配给d_s,而不是相反。

还没有必要将变量初始化为"虚拟字符串" - 您可以指定"正确"值直接。

main将成为:

public static void main(String[] args) { 

  String d_s = args[0]; // stores command line input argument

  String b_s = decimalTobinary(d_s); // decimalString from command argument

  System.out.print(b_s);

}