我尝试将在命令行中输入的字符串转换为数字,然后通过方法将该字符串转换为二进制字符串。然后,将字符串方法返回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;
}
}
答案 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);
}