我是编程的新手,我自己从Core Java学习Java。
本书提到了几行关于在Java中读取csv
文件并将其内容存储到data-structure
中的内容。
因此,在浏览互联网时,我遇到了以下问题:
- 有一所学校有以下演员:教职员工和学生
- 教师具有以下属性:姓名,电话号码,电子邮件ID地址,部门,研究论文数
- 学生具有以下属性:姓名,电话号码,电子邮件ID,地址,卷号,GPA
员工具有以下属性:姓名,电话号码,电子邮件ID,地址,部门,薪资
现在,所有这些数据都以下列方式存储在单个
csv
文件中:
Student,Harry Potter,9999999,hp@hogwarts.magic,Hogsmeade Street,1,4.0
Staff,Argus Filch,888888,arg@mrsnorris.com,Hogwarts,Cleaning,5000
Faculty,Snape,555555,snape@snivellus.com,Hogwarts,Potions,40000
.
.
.
.
- 现在,我需要用Java读取cs文件中的数据,并按照以下顺序将其存储到链接列表中:教师记录,然后是员工记录,然后是学生记录 < / LI>
我的代码:
到目前为止我写的代码是:
import java.io.*;
import java.util.*;
public class readCSV {
public static void main(String[] args) throws FileNotFoundException
{
Scanner scanner = new Scanner(new File("CSV.csv"));
scanner.useDelimiter(",");
while (scanner.hasNext())
{
// Read the tokens and store them into a Linked List
}
scanner.close();
}
}
我的问题:
有人可以帮帮我吗?我不想使用任何库来解析csv,也想从头开始创建我自己的链表 - 这将是一个很好的做法
My main problem is to read from csv and store the data into a linked list . An illustrative code snippet would go a long way
免责声明:这不是一个家庭作业问题。我是自学Java
答案 0 :(得分:1)
对于链接列表,我建议阅读Robert Sedgewick的算法书籍之一。 (如果a)你知道一些Java,那么实现链表本身并不会太难.b)你知道链表如何工作。)我希望网上有很多例子。
编写了自己的链表实现(用于学习):扔掉它并且不在实际程序中使用它。认真。现有的库实现会更好;编写真实世界的馆藏图书馆是一项艰巨的任务。
如果您的数据(文本)可以包含不 CSV分隔符的逗号和引号(在实际数据中通常是这样),则解析CSV比声音更复杂。
然而,一个天真的实现可能是:
LineNumberReader
。readLine()
,直到您返回null(不再有行)。line.split(",")
分割读取的每一行。答案 1 :(得分:0)
您可以使用以下内容解析文件:
Scanner scanner = new Scanner(new File("CSV.csv"));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.isEmpty()) {
continue;
}
String[] parts = line.split(",");
String name = parts[1];
String number = parts[2];
String email = parts[3];
String address = parts[4];
switch (parts[0]) {
case "Faculty":
String department = parts[5];
String papers = parts[6];
// add to list
break;
case "Student":
String roll = parts[5];
String gpa = parts[6];
// add to list
break;
case "Staff":
String department = parts[5];
String salary = parts[6];
// add to list
break;
}
}