java - 如何将 String.split 与文本文件一起使用以添加到简单数组

标签 java arrays java.util.scanner split

我的目标是读取文本文件并将每个元素添加到一个简单的数组中(元素之间用逗号分隔)。最后一个方法 readData() 是我无法弄清楚的。

到目前为止我的代码:

public class VersionChooser {

private Scanner scan;
private StockManager aManager = new StockManager("StockManager");

public VersionChooser() {
    this.scan = new Scanner(System.in);
}

public void chooseVersion() {
    this.readData();
    this.runTextOption();
}

private void runTextOption() {
    StockTUI tui = new StockTUI(this.aManager);
}

public StockManager readData() {
    String fileName;
    System.out.println("Enter the name of the file to be used");
    fileName = this.scan.nextLine();
    System.out.println(fileName);
    try (final BufferedReader br = Files.newBufferedReader(new File("fileName").toPath(),
            StandardCharsets.UTF_16)) {
        for (String line; (line = br.readLine()) != null;) {
            final String[] data = line.split(","); 
            StockRecord record = new StockRecord(data[0], Double.valueOf(data[4])); 
            this.aManager.getStockList().add(record);
        }
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }   


    return null;
}
}

股票记录:

public class StockRecord {
private String date;
private double closingPrice;

public StockRecord(String date, double closingPrice) {
    this.date = date;
    this.closingPrice = closingPrice;
}

public String getDate() {
    return this.date;
}

public double getClosingPrice() {
    return this.closingPrice;
}
public String toString() {
    return "On " + this.date + " this stock had a closing price of $" 
            + this.closingPrice;
}
}

最佳答案

第一步:逐行读取文件。

第二步:用“,”分割线

第三步:构造 String[] 到 StockRecord。

try (final BufferedReader br = Files.newBufferedReader(new File("stock.txt").toPath(),
            StandardCharsets.UTF_8)) {
        List<StockRecord> stocks = new ArrayList<StockRecord>();
                    br.readLine() ; // to avoid first line
        for (String line; (line = br.readLine()) != null;) { // first step
            final String[] data = line.split(",");       // second step
            StockRecord record = new StockRecord(data[0], Double.valueOf(data[1]));
            stocks.add(record);    // third step
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

您的 stockRecord 没有所有记录。出于演示目的,我确实假设 2 个元素是收盘价。相应地改变

关于java - 如何将 String.split 与文本文件一起使用以添加到简单数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23115885/

相关文章:

java - 一种更好的方式来做 Swing 应用程序

arrays - 在API中使用用户输入来按用户加载数据时发现异常

java - Payara/GlashFish 不会在 NetBeans 中启动

java - 当使用 String 作为正则表达式时, String[].split(String regex) 根本不会拆分

Javascript:将文本区域列表循环到数组中

java - NoSuchElementException:未找到行 - Scanner Java

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 使用 Scanner 类解析文本文件并通过多个循环计数模式出现次数

java - 在 session 超时监听器中区分超时破坏的 session 和手动破坏的 session

java - JavaFX 2.0 中的绑定(bind)