2017-11-29 3 views
-1

配列のデータの結果を表示するメッセージを出力する予定です。
"7 *******"のように見えますが、代わりに"7 null*******"があります。配列の出力 - nullを削除する

私はあなたがasterisk最初の要素を初期化しない「ヌル」

import java.util.ArrayList;  

public class FavorGameDisplay 
{ 
private ArrayList<String> votedGame; 
private String[] asterisk; 
private int[] gameCount; 


/** 
* Constructor for objects of class FavorGameDisplay 
*/ 
public FavorGameDisplay() 
{ 
    FavorGameData data = new FavorGameData(); 
    votedGame = data.getData(); 
    analyzeData(); 
} 

/** 
* Analyze and recording counts of the following video games: 
* gameCount[0]: Nier: Automata 
* gameCount[1]: PlayerUnknown’s Battlegrounds 
* gameCount[2]: Wolfenstein 2: The New Colossus 
* gameCount[3]: Cuphead 
* gameCount[4]: any other video games 
*/ 
private void analyzeData() 
{ 
    gameCount = new int[5]; 
    asterisk = new String[5]; 
    for (String game : votedGame) 
    { 
     if (game.equals("Nier: Automata")) 
     { 
      gameCount[0]++; 
      asterisk[0] += "*"; 
     } 

     else if (game.equals("PlayerUnknown’s Battlegrounds")) 
     { 
      gameCount[1]++; 
      asterisk[1] += "*"; 
     } 

     else if (game.equals("Wolfenstein 2: The New Colossus")) 
     { 
      gameCount[2]++; 
      asterisk[2] += "*"; 
     }   


     else if (game.equals("Cuphead")) 
     { 
      gameCount[3]++; 
      asterisk[3] += "*"; 
     } 
     else 
     { 
      gameCount[4]++; 
      asterisk[4] += "*"; 
     } 
    }   
} 





/** 
* Display the analyzed data as a histogram 
*/ 
public void displayData() 
{ 

    System.out.println("------------------------------------------"); 
    System.out.println("Number of people vote for each game: ");   
    System.out.println("Nier: Automata: " + gameCount[0] + " " + asterisk[0]); 
    System.out.println("PlayerUnknown’s Battlegrounds: " + gameCount[1] + " " + asterisk[1]); 
    System.out.println("Wolfenstein 2: The New Colossus: " + gameCount[2] + " " + asterisk[2]);   
    System.out.println("Cuphead: " + gameCount[3] + " " + asterisk[3]); 
    System.out.println("Others: " + gameCount[4] + " " + asterisk[4]); 
    System.out.println("------------------------------------------"); 
} 
} 
+1

を、あなたは* *並列配列を使用しています。代わりに 'クラスゲーム'と 'List 'を持っているべきです。 – chrylis

+0

@christis nah、あなたは複雑なことをする必要はありません。アスタリスクを印刷する場合は 'String.join(" "、Collections.nCopies(count、" * "))'を実行するだけです。 'Map 'にカウントを格納します。 –

答えて

2

を取り除きたいです。あなたが書くとき:

asterisk[0] += "*"; 

あなたは"*"とその現在の値(null)の文字列表現を連結し、あなたはnull*で終わります。

ループの前に空の文字列の配列を入力します。手始めに

Arrays.fill(asterisk, ""); 
関連する問題