我有一些问题游戏的.txt文件,我将它们拆分成一些部分。查看这些部分,当用户进入下一页问题时,我会从txt中读取下一行。问题是我想将每行的一部分存储到一个数组中。因此,例如,如果有30行,我需要创建另一个包含这些部分的30个参数的数组,以便稍后与播放器回答的问题数组进行比较。
也许它不是很清楚所以这里是代码。
我读了这些文件:
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,则恢复:
1;1; ; ; ; ; ; ;C
2;2; ; ; ; ; ; ;B
3;3; ; ; ; ; ; ;A
4;4; ; ; ; ; ; ;D
我需要一个像这样的数组:
public String [] Example = {"C","B","A","D"}
答案 0 :(得分: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()]);
}