JAVA - 扫描程序用引号和逗号分析

时间:2016-06-15 19:57:50

标签: java parsing java.util.scanner

尝试使用扫描程序解析以下文件...

“狗”, “猫”, “马”, “象”, “豚”

...让它输出以下内容:

狗 猫 马 象 海豚

什么scanner.Delimiter正则表达式可以做到这一点?也许我甚至没有走上正轨。在每个令牌之间没有逗号的情况下获取这些令牌的最佳方法是什么,并且每个令牌上没有引号?

2 个答案:

答案 0 :(得分:0)

我不会使用Scanner,而是我会:

List<String> values = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String[] data = reader.readLine().split(",");
    for (String item : data) {
        values.add(item.replace("\"", ""));
    }
}

您在列表values中拥有这些元素(仅从第一行开始,但很容易扩展)。

答案 1 :(得分:0)

您可以做的是设置扫描程序以读取文档,使用scanner声明使用scan.hasNext()进行测试,如果下一个字符串是&#39; &#34; &#39;或者一个&#39; ,&#39;并且通过它们(在&#34;你可以添加一个空格),但是如果扫描仪拿起一个字母字符,那么打印出该字符。对于某些源代码,这里有一个指向如何解析文本文件或字符串的四种解释的链接。

http://www.javapractices.com/topic/TopicAction.do?Id=87