1

こんにちは私はこのコードの実行中にエラーが発生しています

Map<String, Integer> map = new TreeMap<String, Integer>();//Already populated
public ArrayList<Map<String, Integer>> storage(){
    for (String getCharacter : map.keySet()){
        String convertBinGrp;
        **Integer binGroups = Integer.valueOf(getCharacter);**

        if ( binGroups>=0 && binGroups<= 32){
            convertBinGrp = Long.toString(binGroups);
            binInsideList.get(convertBinGrp);
            Integer getVal = getCharacter.getValue();
            binInsideList.put(convertBinGrp, getVal);
        }
    }

エラーメッセージ:スレッド "main"の例外java.lang.NumberFormatException:入力文字列の場合:""
示されたエラーはIntegerbinGroups=Integerです。valueof(getCharacter)キャスト。Mapから取得したString値を理解しているので、サイズが大きくなることを確認するために、longとdoubleを使用してみました。しかし、これを解決する他の方法はありますか?文字列を数値に変換して、適切なビンまたはグループに配置できるようにしたかったのです。ありがとう

4

2 に答える 2

5

マップに" "は、キーの1つとして含まれています。コードはを数値として解釈しようとして" "いますが、有効な数値ではありません。

スペースがどこから来ているのかを把握してから、最善の行動方針を決定する必要があります(原因となった問題を修正する、無視するなど)。

于 2012-05-16T19:18:40.027 に答える
2

例外は正しいです:Integer.valueOf( "")はあなたに。を与えますjava.lang.NumberFormatException。TreeMapの初期化(母集団)は、空白である値を提供します。

試す:

System.out.println("Key is: '" + getCharacter + "');

前にInteger.valueOf(getCharacter); 「1つの白い文字のキー」がある場合は人口のエラーを探します

于 2012-05-16T19:29:54.340 に答える