java-使用字符串标记程序设置文本文件之外的创建数组?
作者:互联网
嘿.您可能最近看过我在寻求帮助的帖子,但之前我做错了,所以我将重新开始并从基础开始.
我正在尝试读取一个看起来像这样的文本文件:
FTFFFTTFFTFT
3054 FTFFFTTFFTFT
4674 FTFTFFTTTFTF
… etc
我需要做的是将第一行放入字符串作为答案键.
接下来,我需要使用学生ID(第一个数字)创建一个数组.
然后,我需要创建一个与包含学生答案的学生ID平行的数组.
下面是我的代码,我还不太清楚如何使它像这样工作,我想知道是否有人可以帮助我解决这个问题.
public static String[] getData() throws IOException {
int[] studentID = new int[50];
String[] studentAnswers = new String[50];
int total = 0;
String line = reader.readLine();
strTkn = new StringTokenizer(line);
String answerKey = strTkn.nextToken();
while(line != null) {
studentID[total] = Integer.parseInt(strTkn.nextToken());
studentAnswers[total] = strTkn.nextToken();
total++;
}
return studentAnswers;
}
因此,归根结底,数组结构应如下所示:
studentID [0] = 3054
studentID [1] = 4674
…等等
studentAnswers [0] = FTFFFTTFFTFT
studentAnswers [1] = FTFTFFTTTFTF
谢谢 :)
解决方法:
假设您已正确打开文件进行读取(因为我看不到reader变量的初始化方式或阅读器的类型)并且文件的内容格式正确(根据您的期望),则必须请执行下列操作:
String line = reader.readLine();
String answerKey = line;
StringTokenizer tokens;
while((line = reader.readLine()) != null) {
tokens = new StringTokenizer(line);
studentID[total] = Integer.parseInt(tokens.nextToken());
studentAnswers[total] = tokens.nextToken();
total++;
}
当然,最好添加一些检查以避免运行时错误(以防文件内容不正确),例如关于Integer.parseInt()的try-catch子句(可能引发NumberFormatException).
编辑:我只是在您的标题中注意到您要使用StringTokenizer,所以我编辑了代码(用StringTokenizer替换了split方法).
标签:stringtokenizer,arrays,java 来源: https://codeday.me/bug/20191106/2001526.html