2016-05-31 8 views
0

名前で配列を埋めたい。キャラクターがどの性別であるかによって、配列を塗りつぶす必要があります。キャラクターの性別に応じてテキストファイルから配列を塗りつぶす

public void fillNameArray() throws IOException { 
    Character character = new Character(); //Declare and initialise character object 

    if(character.getGender() == "F"){ 
     List<String> lines = new ArrayList<String>(); 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(new FileReader("femaleNames.txt")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       lines.add(line); 
      } 
     } finally { 
      reader.close(); 
     } 
     String[] array = (String[]) lines.toArray(); 
    } 
    else{ 
     List<String> lines = new ArrayList<String>(); 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(new FileReader("maleNames.txt")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       lines.add(line); 
      } 
     } finally { 
      reader.close(); 
     } 
     String[] array = (String[]) lines.toArray(); 
    } 

} 
+3

と質問がありますか? –

+0

ここで質問しようとしている質問は何ですか? –

+1

StackOverflowの目的はあなたのコードを書くことではありません(あなたの望むものなら)。一方、何らかの例外がスローされたり、期待したものとは異なる出力が得られた場合は、この情報を元の質問に含めて、問題をすぐに解決できるようにしてください。 – Monkeygrinder

答えて

0

問題は、次の行にあります。代わりに

String[] array = (String[]) lines.toArray(); 

は、Write:

String[] array = lines.toArray(new String[lines.size()]); 

例としてpostを参照してください。

また、独自の方法で読み込みコードを移動できますか?コードの重複が少なくなります。

public List<String> readNames(String file) { 
    List<String> lines = new ArrayList<String>(); 
    BufferedReader reader = null; 
    try { 
     reader = new BufferedReader(new FileReader(file)); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      lines.add(line); 
     } 
    } finally { 
     reader.close(); 
    } 
    return lines; 
} 
+3

これはコメントであり、答えではありません。評判が欠落しているため – Monkeygrinder

+0

私は、コメントをすることはできません... SRY –

+0

あなたができるようになりましたように見える;) – Monkeygrinder

関連する問題