我决定在Java中创建一个货币转换器,并将其转换为从文本文件中提取转换值(以便于编辑,因为这些值会不断变化)。我确实通过使用Scanner类并将所有值放入ArrayList来实现这一目的。
现在我想知道是否有办法在文本文件中添加注释以供用户阅读,扫描仪将忽略该注释。 “//”似乎不起作用。
由于
答案 0 :(得分:11)
最好的方法是使用java.io.BufferedReader
逐行阅读文件,然后使用String#startsWith()
在每行搜索评论,其中搜索"//"
。
但您是否考虑过使用属性文件并使用java.util.Properties
API进行管理?这样您就可以从现成的规范和API中受益,并且可以使用#作为注释行的开头。另请参阅tutorial at sun.com。
答案 1 :(得分:1)
扫描程序不会忽略任何内容,您必须在阅读后删除数据中的注释。
答案 2 :(得分:0)
是的,而((currentLine = bufferedReader.readLine())!= null)可能是最简单的,然后执行必要的测试。 currentLine.split(regex)对于使用分隔符将行转换为值数组也非常方便。
答案 3 :(得分:0)
使用Java nio,您可以执行以下操作。假设您要忽略以“ //”开头并以ArrayList结尾的行。
List<String> dataList;
Path path = FileSystems.getDefault().getPath(".", "data.txt");
dataList = Files.lines(path)
.filter(line -> !(line.startsWith("//")))
.collect(Collectors.toCollection(ArrayList::new));