2013-02-12 98 views
0

我有一些问题游戏的.txt文件,我在某些部分将它们分开。这些部分被查看,当用户转到问题的下一页时,我会阅读txt中的下一行。问题是我想将每行的一部分存储到一个数组中。例如,如果有30行我需要用这些部分创建30个参数的数组,以便稍后与玩家回答的问题数组进行比较。Java:从另一个阵列创建数组

也许它不是很清楚,所以这里是代码。

我读文件:

try { 
     InputStream is = context.getAssets().open(questionFile); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
     // Skips lines 
     for (i = 0; i< questionNumber; i++) { 
      reader.readLine(); 

     } 
     question = reader.readLine(); 

用户到下一个问题:

public void Next(){ 
    questionNumber=questionNumber + 1; 
} 

读线的一部分,从我要创建的的Array的一个行数:

public String getCorrecta() { 
    String[] parts = question.split("\\;"); 
    String correcta = parts[8]; 
    return correcta; 
} 

所以要恢复,如果有一个TXT与以下EX amples:

1;1; ; ; ; ; ; ;C 
2;2; ; ; ; ; ; ;B 
3;3; ; ; ; ; ; ;A 
4;4; ; ; ; ; ; ;D 

我需要一个这样的数组:

public String [] Example = {"C","B","A","D"} 
+2

您应该使用'ArrayList'而不是'array',在这种情况下,您不需要事先指定大小。现在,你面临的实际问题是什么?问题是如何在单独的数组中添加所有'parts [8]'? – 2013-02-12 19:15:56

+0

嗨Rohit Jain,我知道行数,是的,我不知道如何在另一个特殊数组中添加部分[8]。 – Katherine99 2013-02-12 19:18:54

+0

@ Katherine99这是我从你的问题中得到的。你有一个文件,每行包含一个问题和一些更多的信息(或某些东西),包括用';'分隔的答案。而且您已经知道如何将不同部分与该线分开。现在,你实际面临的问题是什么?你是否收到了一些错误或者你的代码没有按照你的预期工作? – Ankit 2013-02-12 19:22:58

回答

1

下面是代码(假设是预先已知的索引基于8(零)。但是,如果您想读取文件并将所有列转换为单独的数组(比较喜欢数组上的集合),则应该一次完成并且不要多次读取该文件。需要更好地理解你的用例。

 public static final String COLUMN_SEPARATOR = ";"; 
     String[] stringsAtIndexN(int index, String inputFile) 
     throws IOException { 
     List<String> list = new ArrayList<String>(); 
     BufferedReader br = new BufferedReader(new FileReader(inputFile)); 
     String str; 
     while ((str = br.readLine()) !=null) { 
      list.add(str.split(COLUMN_SEPARATOR)[index]); 
     } 
     return list.toArray(new String[list.size()]); 
     }