gpt4 book ai didi

java - 使用扫描仪读取 .CSV 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:39 25 4
gpt4 key购买 nike

我有一个包含一行内容的 .CSV 文件:

Detroit 25  4   7   W   Green Bay   7   7   4   L

我使用输入名称创建一个新的扫描仪

Scanner input = new Scanner(file);  //file here is the .csv file

如果我打印 input.next(),将显示以下内容:

Detroit,25,4,7,W,Green
Bay,7,7,4,L

如果我创建一个新数组并指定分隔符,如下所示:

String[] list = input.next().split(",");

然后打印数组的索引

System.out.println(list[2]);

我明白了:

Detroit,25,4,7,W,Green
7

而不是 4。如何将 .csv 的每个值放入其自己的逻辑索引中?示例:

list[0] = Detroit list[1] = 25 and so on.

这是我的完整代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.stage.FileChooser;
import javafx.geometry.*;
import java.util.*;
import java.io.*;

public class POS extends Application
{
private Button runBtn = new Button("Run");
@Override
public void start(Stage stage)
{
GridPane pane = new GridPane();

VBox vBox = new VBox(20);
vBox.setPadding(new Insets(15));
Button selectBtn = new Button("Select File");
selectBtn.setStyle("-fx-font: 22 arial; -fx-base: #b6e7c9;");
vBox.getChildren().add(selectBtn);

selectBtn.setOnAction(e->
{
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
FileChooser.ExtensionFilter extFilter =
new FileChooser.ExtensionFilter("TEXT files (*.csv)", "*.CSV", ".xlsv", ".XLSV");
fileChooser.getExtensionFilters().add(extFilter);
File file = fileChooser.showOpenDialog(stage);




run(file);


});

RadioButton weekBtn = new RadioButton("Current Week");
RadioButton seasonBtn = new RadioButton("Entire Season");

runBtn.setStyle("-fx-font: 22 arial; -fx-base: #b6e7c9;");



seasonBtn.setDisable(true);
vBox.getChildren().add(weekBtn);
vBox.getChildren().add(seasonBtn);
vBox.getChildren().add(runBtn);

pane.add(vBox, 0, 0);
Scene scene = new Scene(pane, 500, 200);
stage.setScene(scene);
stage.setTitle("POS");
stage.show();
}
public void run(File file)
{
runBtn.setOnAction(e->
{
try
{
Scanner input = new Scanner(file);
input.nextLine();
System.out.println(input.next());
sortFile(file, input);

input.close();
}

catch (InputMismatchException ex)
{
System.out.println("Error you seem to have typed the wrong type of file");
}
catch(IOException ex)
{
System.out.println("Error, file could not be found");
}


});
}
public ArrayList<String> sortFile(File file, Scanner input)
{
String[] list = input.next().split(",");
System.out.println(list[2]);
if (input.hasNext())
{
return null;
}
return null;
}

}

最佳答案

您的 cvs 文件似乎采用制表符分隔格式。您应该使用:

String[] list = input.nextLine().split("\t");

它应该可以工作。

关于java - 使用扫描仪读取 .CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34100820/

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