将文件中的输入解析为 ADT ArrayList

Posted

技术标签:

【中文标题】将文件中的输入解析为 ADT ArrayList【英文标题】:Parsing input from file into an ADT ArrayList 【发布时间】:2011-01-19 00:53:21 【问题描述】:

我在解析文件输入时遇到问题。该文件由行分隔,使用 ':' 作为分隔符值。我无法将输入输入到 ArrayList 中,我认为这是因为我在 while 循环中无效地使用了一个变量。如果变量 newItin 发生变化,它仍然引用同一个对象,或者更确切地说是附加 newItin 的“路线”ArrayList,或者只是更改它。我想知道是否有人对我如何解决这个问题有任何建议。提前谢谢你。

    ArrayList <Itinerary> itinerary = new ArrayList <Itinerary>();
    Itinerary newItin = new Itinerary();
    fileIn.useDelimiter(":");

    while(fileIn.hasNextLine())
        if(fileIn.hasNext())
        String dest = fileIn.next();
        String days = fileIn.next();
        newItin.addDestination(dest, Integer.parseInt(days));
        itinerary.add(newItin);
        fileIn.nextLine();
    fileIn.close();

【问题讨论】:

【参考方案1】:

您需要将“新行程”移动到循环中,并且每次都创建一个新行程。否则,您会一遍又一遍地向 ArrayList 添加相同的对象。

【讨论】:

以上是关于将文件中的输入解析为 ADT ArrayList的主要内容,如果未能解决你的问题,请参考以下文章

如何解析文本文件并使用构造函数中的文件输入来创建对象容器

如何从 JavaScript 中的用户输入将时间解析为 Date 对象?

将 Java 文件中的 ArrayList 值映射到 JSP 文件中的 HTML 对象

用于蛇案例 ADT 的 ConfiguredJsonCodec

如何将字符串解析为 subprocess.Popen 的输入?

无法将 Eclipse 中的 crashlytics 与 ADT 集成