2016-05-31 39 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(); 

寫代替:

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