2011-01-26 6 views
0

私はCSクラスの割り当てのためのプログラムを書いています。Javaユーザ入力から2セットの配列をマージする - どうすればnullを扱うことができますか?

基本的には、コマンドライン引数をとる方法です。 CSVのようなものなので、私がマージするコールを呼び出すにはCSVが必要です。

例えば1,2,3,4をマージ5,6,7,8-

これは二つのことを行います。 1)配列の引数として各リストをとり、1つの大きな配列にマージします.2)配列をソートします。

ここでは、null値を処理するために必要なコマンドラインからのキャッチがあります。私はこれに対処するにはどうすればよい、

は1,2、マージ3,4 5,6

を:だから、ユーザーがフィードだろうか?エラー出力の

例:

Enter commands: 
merge 12,,2 43 
java.lang.NumberFormatException: For input string: "" 
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
    at java.lang.Integer.parseInt(Integer.java:493) 
    at java.lang.Integer.parseInt(Integer.java:514) 
    at CmdInterpreter.strArrayToIntArray(CmdInterpreter.java:143) 
    at CmdInterpreter.getIntArray(CmdInterpreter.java:130) 
    at Assign1.processOneCommand(Assign1.java:99) 
    at CmdInterpreter.processCommands(CmdInterpreter.java:198) 
    at CmdInterpreter.processCommands(CmdInterpreter.java:230) 
    at CmdInterpreter.ooMain(CmdInterpreter.java:243) 
    at MyAssign1.main(MyAssign1.java:20) 
+1

修正 - '' ''は 'ヌル 'ではありません。これは空の 'String'であり、' null'とはまったく同じではありません。 –

答えて

0

あなたはnullまたはlist2またはその両方としてlist1でフィードできます。しかし、それらの配列の要素ではありません...私はこの割り当てには問題にならないようなものを試していました。

0

あなたがそこには整数が存在しないというイベントを処理する必要があります。それはあなたが例外を取得している理由は、それが完全性をチェックせずに入力を盲目的にループしているように見えます。

これを行う適切な方法は、解析している現在のデータが有効であることを確認するチェックメカニズムを設定することです(この例ではIntegerです)。

私は私の答えを非常に曖昧にしていますが、これは学校の課題であることを明示しているため、この回答を試して適切なソリューションを実装する方法を学ぶ必要があります。

+0

どうすればいいですか? –

+0

私はポストをもう少し詳しく編集しましたが、これは学校の割り当てのためのものです。あなたはこの経験から自分自身で解決することによって学ぶことを意図しているので、私は非常に詳細な解決法を提供しませんでした。 – William

+0

もっと手がかりをくれますか? –

1

parseIntを呼び出すときは、try/catchブロックで呼び出しをラップします。 NumberFormatExceptionをキャッチした場合は、文字列をスローして値の数を減らします。

編集:どうしますか?このようなもの:

+0

どうやってそれをしますか? –

関連する問題