【问题标题】:Storing strings from a text file/scanner. Array or built-in?从文本文件/扫描仪存储字符串。数组还是内置?
【发布时间】:2013-10-23 21:28:12
【问题描述】:

这段代码sn-p是为了读取一个文本文件,通过一个不同的公共(不可更改)类(externalClass)将这些行变成对象。

外部类只是将字符串(从 .txt 到 nextLine 的行)转换为对象,并且功能齐全。扫描仪(scanner3)被分配给文本文件。

        while (scanner3.hasNext()) {
               externalClass convertedlines = new externalClass(scanner3.nextLine());

我不是编程新手,但由于我是 java 新手,我不知道这是否需要我创建一个数组,或者返回的对象是否以其他方式排序。即每次循环运行都会覆盖“importedlines”(我需要在循环中引入一个数组),还是对象以某种方式存储?

这个问题可能看起来很奇怪,但是如果我使用数组,我正在制作的程序会更难(但绝对不是不可能)。

任何帮助将不胜感激。

根据要求,externalClass:

public class exernalClass {
    private String line;

    externalClass(String inLine){   
        line = inLine;
    }

    public String giveLine() {
        return line;
    }
}

【问题讨论】:

  • 扫描仪读取一行并作为字符串返回。如何处理它完全取决于您。希望能帮助到你。参考:docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
  • 是的,但是字符串是通过externalClass作为对象返回的。你的意思是我应该把对象放入一个数组中?
  • 我们可以看到externalClass 吗? externalClass 有自己的数据存储方法吗?如果是,那么您的方法有效,如果不是,那么您将需要一个数组来存储扫描仪的输入。
  • 您只是为您的文本文件中的每一行替换您的对象convertedLines?这就是你想要的吗?
  • 是的,安德鲁。那是对的。我现在考虑我的问题。谢谢大家。

标签: java arrays


【解决方案1】:

你是对的,convertedlines 将在每次循环运行时被覆盖。

取决于你想在之后对这些行做什么,如果你知道你读取的文件有多大,Collection 的一些实现(比如ArrayList 或LinkedList)可能比数组更合适.

【讨论】:

  • 可以 ->objects
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
相关资源
最近更新 更多