尝试使用扫描仪来分析从下列文件扫描仪解析...JAVA - 用引号和逗号
“狗”,“猫”,“马”,“大象”,“海豚”
...有它的输出如下:
狗 猫 马 大象 海豚
什么scanner.useDelimiter正则表达式可以做到这一点?也许我没有走上正轨。获取这些令牌的最佳方式是在每个令牌之间没有逗号,并且每个令牌上没有引号?
尝试使用扫描仪来分析从下列文件扫描仪解析...JAVA - 用引号和逗号
“狗”,“猫”,“马”,“大象”,“海豚”
...有它的输出如下:
狗 猫 马 大象 海豚
什么scanner.useDelimiter正则表达式可以做到这一点?也许我没有走上正轨。获取这些令牌的最佳方式是在每个令牌之间没有逗号,并且每个令牌上没有引号?
我不会用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
。
您应该将'BufferedReader'放入[tag:try-with-resources]块以防止内存泄漏 –
猜测我应该已经更清楚了。逗号可以出现在引号内。例如,“dog”,“cat”,“horse”,“dol,phin”应解析为:dog cat horse dol,phin – Greymarch
@Greymarch然后,如果数据兼容,最好使用CSV解析器。 –
你可能可以启动的是设置一个扫描器来读取文档,如果下一个字符串是'''或'',则使用scanner.hasNext()测试if语句并通过他们(在“你可以添加一个空格)”,但是如果扫描仪按照字母字符进行拾取,则打印出字符。对于某些源代码,这里有一个关于如何解析文本文件或字符串的四种解释的链接。
你在错误的轨道上。这听起来像一个CSV文件,为此有几个库可以很好地完成工作。既然你没有提供真正的细节或代码,我们无法真正帮助超越。 –