Только для чтения int с BufferedReader из текстового файла - Java - PullRequest
0 голосов
/ 08 декабря 2018

Итак, если у меня есть текстовый файл, подобный этому:

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);            
    }

1 Ответ

0 голосов
/ 08 декабря 2018

Как читать только целые числа с помощью буферизованного читателя и не использовать сканирование.

Если я понимаю ваш вопрос, вы можете использовать текущий код и добавить регулярное выражение для удалениявсе, что не является цифрой, перед парсингом значения 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"));
...