Java:从另一个数组创建数组
我有一些用于提问游戏的.txt文件,我把它们分成了一些部分。这些部分会被查看,当用户转到下一页的问题时,我会从txt中读到下一行。问题是我想将每行的一部分存储到一个数组中。例如,如果有30行,我需要用这些部分创建另一个包含30个参数的数组,以便稍后与玩家回答的问题数组进行比较 也许它不是很清楚,所以这里是代码 我读了这些文件:Java:从另一个数组创建数组,java,arrays,split,Java,Arrays,Split,我有一些用于提问游戏的.txt文件,我把它们分成了一些部分。这些部分会被查看,当用户转到下一页的问题时,我会从txt中读到下一行。问题是我想将每行的一部分存储到一个数组中。例如,如果有30行,我需要用这些部分创建另一个包含30个参数的数组,以便稍后与玩家回答的问题数组进行比较 也许它不是很清楚,所以这里是代码 我读了这些文件: try { InputStream is = context.getAssets().open(questionFile); Buffer
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 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"}
下面是代码(假设索引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()]);
}
公共静态最终字符串列_SEPARATOR=“;”;
字符串[]stringsAtIndexN(整数索引,字符串输入文件)
抛出IOException{
列表=新的ArrayList();
BufferedReader br=新的BufferedReader(新文件读取器(inputFile));
字符串str;
而((str=br.readLine())!=null){
添加(str.split(列分隔符)[索引]);
}
return list.toArray(新字符串[list.size()]);
}
您应该使用数组列表
而不是数组
,在这种情况下,您不需要预先指定大小。现在,您面临的实际问题是什么?是如何添加所有部分的问题[8]
在单独的数组中?嗨,Rohit Jain,我知道行数,是的,我不知道如何在另一个Sperate数组中添加部分[8]。@Katherine99这是我从你的问题中得到的。你有一个文件,每行包含一个问题和一些更多信息(或其他信息)包括由;
分隔的答案。您已经知道如何从该行中分隔不同的部分。现在,您实际面临的问题是什么部分?您是否遇到了一些错误,或者您的代码没有按预期工作?@RohitJain看起来OP不知道如何使用ArrayList
(OP应该确认或否定这一点)。如果我错了,那么最好的选择就是使用这个类来解决这个问题。你的文本文件总是8乘n吗?你可以为此创建一个多维数组,并使访问你扫描的内容变得更容易。不过,我也有点困惑你实际的问题是什么。
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()]);
}