所以我想创建一个构造函数,从 csv 读取文件的一行,并将第一个标记保存到变量中,将剩余标记保存到数组中。此构造函数将在成绩簿应用程序中使用,但对于 txt/文件操作来说,我遇到了困难。
一行看起来像:
比利鲍勃,68,79,95,83
我想将 token 分成这些:
姓名 = 比利·鲍勃
成绩[] = "68,79,95,83"
这是我到目前为止的代码:
import java.io.*;
public class gradeBook {
public static void main(String[] args){
System.out.println("Java Grade Book version 1.0");
int lineCounter = 0;
String array[];
try{
File data = new File("/file/path/that/works");
InputStream f = new FileInputStream(data);
BufferedReader br = new BufferedReader(new InputStreamReader(f));
for (String line = br.readLine(); line != null; line = br.readLine()) {
System.out.println(line); // just here to check that the code is working thus far
//insert code here
//name should equal first token (which is two names like Billy Bob)
//grades[] should contain the other double type tokens (e.g. 56,87,89,90)
}
br.close();
}
catch(Exception e){
System.err.println("Error: File Couldn't Be Read");
}
}
}
我想循环遍历该文件以获取存储文件中尽可能多的学生,以便我可以操纵平均成绩等。这是一个个人项目,旨在帮助提高我的开发技能,因此任何帮助、有用的教程链接和提示将不胜感激。但请不要建议像我已经读过的许多教程那样仅使用一种数据类型的简单示例。
感谢您的帮助!
最佳答案
将行分割成数组;
String[] input = line.split(",");
String variable = input[0];
int[] grades= new int[input.lenght - 2];
for(int i = 1; i < input.length; i++)
{
grades[i] = input[i];// you might have to do Integer.pareseInt(input[i]);
}
我没有在IDE中写这个,但是逻辑应该是正确的。 你将遇到一个新问题。您的成绩册将仅包含最后一个条目。尝试使用二维数组表示成绩,使用一维数组表示姓名;我个人不会使用数组。我会使用数组列表。
关于java - Java从CSV文件中读取多种数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40895042/