代码之家  ›  专栏  ›  技术社区  ›  Jason

解析文本扫描程序还是BufferedReader?

  •  1
  • Jason  · 技术社区  · 15 年前

    对于我的数据结构类,第一个项目需要解析歌曲的文本文件。

    输入示例如下:

    TITLE=“Rockabye宝贝”
    歌词=“树顶上的小宝贝
    当风吹过你的摇篮就会摇动

    婴儿摇篮和所有的一切都会降临
    "

    我想知道最好的方法来提取艺术家,标题和歌词,以各自的字符串字段在歌曲类。我的第一反应是使用扫描仪,接收第一个字符,然后根据字母,使用skip()将所需字符提前,并读取引号之间的文本。

    如果我用这个,我就失去了缓冲输入的能力。完整的歌曲文本文件有超过422K行的文本。即使没有缓冲,扫描仪也能处理吗?

    3 回复  |  直到 15 年前
        1
  •  3
  •   sjagr    15 年前

    对于这种情况,您可能应该只使用正则表达式。Matcher类支持缓冲输入。

    http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Matcher.html

    正则表达式本身就是一个完整的世界。如果你以前从未使用过,从这里开始 http://download.oracle.com/javase/tutorial/essential/regex/ 做好准备。努力是 非常值得花时间。

        2
  •  1
  •   Community Mohan Dere    9 年前

    StreamTokenizer 也许是个选择。这是一个 example 相比之下 流标记器 Scanner

        3
  •  1
  •   Thomas Mueller    15 年前

    在这种情况下,你可以使用 CSV reader