• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Java считать текст из файла нужна помощь

  • Автор темы Ola_ola
  • Дата начала
O

Ola_ola

Добрый день!!! Очень мне нужна подсказка. Мне нужно считать текстовый файл txt в массив или коллекцию. Я знаю как это сделать. НО в текстовом файле у меня информацию в виде "число-текст", с числом потом нужно мне работать дальше (в частности умножать и т.п.). Так вот ПРОБЛЕМА для меня в том, что я не понимаю как, например, мне привести данные из файла к типу Integer.
 

sinner67

Green Team
24.03.2017
279
358
BIT
0
Добрый день!!! Очень мне нужна подсказка. Мне нужно считать текстовый файл txt в массив или коллекцию. Я знаю как это сделать. НО в текстовом файле у меня информацию в виде "число-текст", с числом потом нужно мне работать дальше (в частности умножать и т.п.). Так вот ПРОБЛЕМА для меня в том, что я не понимаю как, например, мне привести данные из файла к типу Integer.

если содержание файла такое:
23 - фыафыафыпв
1 -фыафыафыпф
332 - ыыфафыаыф

то можно например так:
Код:
Path fileName = Paths.get("C:\\1.txt");
        BufferedReader reader = new BufferedReader(new FileReader(fileName.toFile()));
        List<String[]> result = new ArrayList<>();
        int sum = 0;// допустим надо найти сумму

        while (reader.ready())
            result.add(reader.readLine().split("-"));

        for (String[] e: result)
            sum += Integer.parseInt(e[0].trim());
        System.out.println(sum);

или например написать класс:
Код:
public class Solution {
    public static void main(String[] args) throws  Exception {
        Path fileName = Paths.get("C:\\1.txt");
        BufferedReader reader = new BufferedReader(new FileReader(fileName.toFile()));
        List<Record> result = new ArrayList<>();
        int sum = 0;// допустим надо найти сумму

        while (reader.ready())
            result.add(new Record(reader.readLine()));

        for (Record e: result)
            sum += e.getI();
        System.out.println(sum);
    }

    public static class Record{
        private int i;
        private String text;

        public Record(String line) {
            this.i = Integer.parseInt(line.substring(0, line.indexOf("-")).trim());
            this.text = line.substring(line.indexOf("-") + 1).trim();
        }

        public int getI() {
            return i;
        }

        public void setI(int i) {
            this.i = i;
        }

        public String getText() {
            return text;
        }

        public void setText(String text) {
            this.text = text;
        }
    }
}
[doublepost=1507703416,1507702848][/doublepost]###... не глянул на дату поста. Кажись это уже никому не надо -_-
 
Последнее редактирование модератором:
  • Нравится
Реакции: Сергей Попов
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!