【问题标题】:Read only ints with BufferedReader from text file - Java从文本文件中读取带有 BufferedReader 的整数 - Java
【发布时间】:2018-12-08 16:52:07
【问题描述】:

所以如果我有一个这样的 txt 文件:

scissors 3
papers 5
staplers 2

如何只使用缓冲读取器读取整数而不使用扫描。

try {
        BufferedReader reader = new BufferedReader(new FileReader("Supplies.txt"));

        String line = "";
        while((line=reader.readLine())!=null){
            System.out.println(line);
        }

    } catch (IOException ex) {
        JOptionPane.showMessageDialog(null, ex);            
    }

【问题讨论】:

  • 你无法避免读行,一旦读到行,你就可以解析行得到整数。
  • 像“我怎么做这个和那个”这样的问题太宽泛了。你到底在哪里有问题?你已经在读这些行了。所以只需从中提取数字。

标签: java text-files bufferedreader


【解决方案1】:

如何只使用缓冲读取器读取整数而不使用扫描。

假设我理解您的问题,您可以使用您当前的代码,并添加一个正则表达式以在解析 int 值之前删除所有不是数字的内容。喜欢,

while ((line = reader.readLine()) != null) {
    int i = Integer.parseInt(line.replaceAll("\\D+", ""));
    System.out.println(i);
}

应该close()你的reader当你完成它,否则你泄漏一个文件句柄。我相信最好的解决方案是try-with-resources。喜欢,

try (BufferedReader reader = new BufferedReader(new FileReader("Supplies.txt"))) {
    // BufferedReader reader = new BufferedReader(new FileReader("Supplies.txt"));

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2013-09-19
    • 2017-11-14
    相关资源
    最近更新 更多