gpt4 book ai didi

java - 如何在java中对csv文件的内容进行排序

转载 作者:行者123 更新时间:2023-12-02 02:26:42 25 4
gpt4 key购买 nike

我有一个像这样的大 csv 文件

 Order ID,Order Priority,Order Quantity,Unit Price,Ship Mode,Customer Name,Customer Segment,Product Category
3,Low,6,38.94,Regular Air,Muhammed MacIntyre,Small Business,Office Supplies
293,High,49,208.16,Delivery Truck,Barry French,Consumer,Office Supplies
293,High,27,8.69,Regular Air,Barry French,Consumer,Office Supplies
483,High,30,195.99,Regular Air,Clay Rozendal,Corporate,Technology

我能够显示它,但我不知道如何对其进行排序并再次排序后显示。这是我到目前为止的代码

package project1;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;

public class Test {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(System.in);
int choice=0;
boolean flag = true;

while (flag) {
System.out.println("Enter 1 to display data.");
System.out.println("Enter 2 to sort data.");
System.out.println("Enter 3 to idk.");
System.out.println("Enter 0 to exit.");
System.out.print("Your choice: ");
choice = input.nextInt();
if (choice ==1) {
File inputFile = new File("dataToLoad.csv");
String line;
String delimiter = ",";
Scanner in = new Scanner(inputFile);
int numberOfLines = 0;
int numberOfColumns = 0;
while (in.hasNextLine()){
line = in.nextLine();
numberOfLines++;
}
in.close();
String[][] data = new String[numberOfLines][8];
in = new Scanner(inputFile);
int currentRow = 0;
while (in.hasNextLine()){
line = in.nextLine();
String[] parts = line.split(delimiter);
numberOfColumns = parts.length;
for (int i = 0; i<numberOfColumns; i++) {
data[currentRow][i] = parts[i];
}
currentRow++;
}
in.close();
System.out.println(Arrays.deepToString(data));
for (int row=0; row<numberOfLines; row++) {
for (int col=0; col<numberOfColumns; col++) {
System.out.printf("%-20s", data[row][col]);
}
System.out.println();
}
}
else {
if (choice ==2) {

}
else
if (choice==0) {
System.out.println("Good bye!");
flag = false;
}
else System.out.println("I am sorry, this is not a valid option. Please try again.");
}
}
}
}

正如您所看到的,我为用户提供了显示数据的选项,将它们显示为排序的(根据 id),并且我还希望用户选择如何对代码进行排序。我陷入了排序。

最佳答案

  1. 停止重复发明轮子;使用 csv 开源库(例如 opencsv)。
  2. 创建一个类来表示 csv 文件中的一行数据;我将其称为 RowClass
  3. 一次读取一行 CSV 文件。每行将以 String[] 形式到达。
  4. 为 CSV 文件的每一行创建并填充一个 RowClass 实例。
  5. RowClass对象存储在List中;我将其称为 rowList
  6. 使用您创建的ComparatorrowList进行排序。为每个排序选项创建一个Comparator
  7. 实现 RowClass.toString() 以显示一行。

关于java - 如何在java中对csv文件的内容进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47678587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com