我决定用 Java 创建一个货币转换器,并拥有它,以便它将转换值从文本文件中提取出来(以便于编辑,因为这些值是不断变化的)。我确实设法通过使用 Scanner 类并将所有值放入 ArrayList 来做到这一点。
现在我想知道是否有一种方法可以将注释添加到文本文件以供用户阅读,而 Scanner 将忽略该方法。“//”似乎不起作用。
谢谢
我决定用 Java 创建一个货币转换器,并拥有它,以便它将转换值从文本文件中提取出来(以便于编辑,因为这些值是不断变化的)。我确实设法通过使用 Scanner 类并将所有值放入 ArrayList 来做到这一点。
现在我想知道是否有一种方法可以将注释添加到文本文件以供用户阅读,而 Scanner 将忽略该方法。“//”似乎不起作用。
谢谢
最好的方法是逐行读取文件,并使用where in you search forjava.io.BufferedReader
扫描每一行的注释。String#startsWith()
"//"
但是您是否考虑过使用属性文件并使用java.util.Properties
API 对其进行管理?通过这种方式,您可以从现成的规范和 API 中受益,并且可以使用 # 作为注释行的开头。另请参阅sun.com 上的教程。
扫描仪不会忽略任何内容,您必须在阅读后从数据中删除评论。
是的,虽然 ((currentLine = bufferedReader.readLine()) != null) 可能是最简单的,然后执行必要的测试。currentLine.split(regex) 对于使用分隔符将行转换为值数组也非常方便。
使用 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));