Прочитайте первый файл и напишите второй

У меня есть файл со следующим текстом:

  • Алан Альда 100 2
  • Coco Channel 103 2
  • Эрик Эдвардс 105 0 ...

Я должен использовать только один метод для чтения первого файла и записи этой информации во второй и подсчета количества строк, что означает заемщиков и общее количество заимствованных книг, что является последним числом в строке. Итак, в моем выводе 3 пустые строки для этого текста, но подсчет и итоговая обработка хорошо обрабатываются в следующих строках. Я понятия не имел, как добавить последнее число только путем присвоения переменной каждой строке.

    input = new Scanner(inFile);
    output = new PrintWriter(outFile);
     ... 
    public void processFiles()
    { 
     while(input.hasNextLine())
     { 
          count++;
          String firstName = input.next();
          String lastName = input.next();
          String libraryNumber = input.next();
          total += input.nextInt(); 
          output.println(input.nextLine());//empty strings
       }
       output.println("number of borrowers"+count); //3
       output.println("number of books borrowed"+total); //2+2+0
       }

1 ответ

Решение
String firstName = input.next();
String lastName = input.next();
String libraryNumber = input.next();
total += input.nextInt(); 
output.println(input.nextLine());//empty strings

Вы читаете первое имя, "Алан", второе имя "Алда", номер библиотеки "100" и следующий int, равный 2. Затем вы читаете вплоть до следующего возврата каретки.. что является следующий персонаж Так как \n снят с String то, что найдено, вы получите пустую строку. Если бы я был тобой, я бы прочитал всю строку, разобрать String сам и выпиши.

пример

String line = input.nextLine();

String[] values = line.split(" ");

String firstName = values[0];
String secondName = values[1];
String libraryNumber = values[2];
total += Integer.parseInt(values[3]);

output.println(line);
Другие вопросы по тегам