2016-08-16 7 views
1

私は小さなユーティリティプログラムを作成しています。このプログラムでは、私はJavaオブジェクトに配列を割り当てようとしています: new Food(name, state, arrayOfSymptoms, comment, isCategory)、ここでarrayOfSymptomsは問題がある配列です。Javaアプリケーションの配列の重複する最初のインデックス

出力ログに配列の内容を送信すると、[sym1, sym2, sym3, sym4]。工事が完了した後
はしかし、配列は次のようになります。[sym1, sym1, sym2, sym3, sym4]

は、誰かがこの問題を解決する簡単な方法を知っているか、私は削除して、インデックスを移動するための余分なコードを大量に作成しなければならないのでしょうか?

ありがとうございます!

編集:コンストラクタの前に

コード:

CurrSym(0):名前:SYM1、コメント: ""

CurrSym(

 Symptoms[] allSyms = new Symptoms[selSyms.size()]; 
     for (int j = 0; j < selSyms.size(); j++) { 
      allSyms[j] = selSyms.get(j); 
      System.out.println("CurrSym(" + j + "): " + allSyms[j]); 
     } 

     System.out.println("Amount of symptoms selected: " + allSyms.length); 

     if(  // Basic Form Validation 
       !nameField.getText().isEmpty()) { 

      if (!isCategory.isSelected()) 
       MainController.makeLeaf(
         MainController.categoryTitles.indexOf(categories.getValue()), 
         new Food(
           nameField.getText(), 
           stateChoice.getSelectionModel().getSelectedIndex(), 
           allSyms, // Symptoms Here 
           "", 
           false) 
       ); 
     } 

は、ここに示された出力を作成します。 1):名前:Sym2、コメント: "

CurrSym(2):名前:Sym3、コメント:" "

CurrSym(3):名前:SYM4、コメント: ""

これは明らか配列のみ4つの要素が含まれていることを示しています。私はJSONにオブジェクトを変換するときに示すように しかし、出力は次のようになります。この新しい情報が役立ちます

public String symptomsToJSON() 
{ 
    String allSymptoms = ""; 

    if(getSymptoms() != null) 
    { 
     for (int i = 0; i < symptoms.length; i++) { 
      if (i == 0) 
       allSymptoms += symptoms[i].toJSON(); 
      allSymptoms += "," + symptoms[i].toJSON(); 
     } 
    } 

    return allSymptoms; 
} 

public String toJSON() 
{ 
    return "{\"title\": \"" + title + "\", \"state\": "+ state + ", \"symptoms\":[" + symptomsToJSON() + "],\"comment\": \"" + comment +"\", \"isCategory\": " + isCategory + "}"; 
} 

希望: {"title": "Test Food", "state": 0, "symptoms":[{"name":"Sym1","comment":""},{"name":"Sym1","comment":""},{"name":"Sym2","comment":""},{"name":"Sym3","comment":""},{"name":"Sym4","comment":""}],"comment": "", "isCategory": false}

JSONにオブジェクトを変換するためのコードは次のようになります!

+3

を私たちにコードを表示してください。 – Kode

+4

[mcve]を入力してください。 – Gendarme

+0

あなたは 'allSymptoms + = symptoms [i] .toJSON();'の後に 'else'を忘れました。それ以外の場合は、 'i == 0 'を含む' allSymptoms + = "、" + symptoms [i] .toJSON();が常に実行されます。タイプミスとして閉じる投票。 – Pshemo

答えて

0

あなたは)(symptomsToJSONで '他' を欠けている:

public String symptomsToJSON() { 
String allSymptoms = ""; 
if(getSymptoms() != null) { 
    for (int i = 0; i < symptoms.length; i++) { 
     if (i == 0) 
      allSymptoms += symptoms[i].toJSON(); 
     //NOTE: Without this, the preceding line gets printed twice for i==0 
     else 
      allSymptoms += "," + symptoms[i].toJSON(); 
    } 
} 
return allSymptoms; 
} 

``

+0

* blush * noobが失敗するxD ありがとうございました! – DivineChili

関連する問題