2017-11-05 15 views
1

コマンドラインで数値として入力された文字列を変換し、その文字列をメソッドでバイナリに変換しようとしています。その後、文字列メソッドを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; 
} 

} 

答えて

3

あなたは間違った方法で代入演算子を使用:意図は、他の方法ラウンド、d_sargs[0]をない割り当てることでした。

変数を「ダミー文字列」に初期化する必要はありません。「正しい」値を直接割り当てることができます。 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); 

} 
+0

アレックス、私を助けてくれてありがとう。私は大いに感謝します。 V/R、Austin – Austin

関連する問題