2013-12-05 5 views
-3

Я пытаюсь умножить числа из текстового файла с помощью JAVA, но понятия не имею, как это сделать.Как умножить числа из текстового файла с помощью JAVA

4 
12 4 
16 8 
14 1 
12 8 

Первый номер на первой линии представляет, сколько людей есть в документе (строка 2 «12 4» является первым человеком «12 8» является последним.)

4 (number of employees) 
32 (hours employees have worked) 8 (wage per hour) 
38 6 
38 6 
16 7 

Я пытаюсь найти, как Java может пропустить строку 1, прочитать строку два и умножить два числа, а затем сделать то же самое для других строк.

Пожалуйста, объясните, как я могу это сделать?

Cheers!

+6

Как насчет того, чтобы показать нам какое-то усилие. Что вы пробовали? –

+0

Что вы можете сделать? –

+0

Даже новичок может внести небольшую работу. – Keppil

ответ

1

Допущение что вы получили это как задание на домашнее задание, и либо вы не обратили внимания на занятия. Ключ к программированию обучения сводит задачу к управляемым задачам.

В вашем случае напишите программу для чтения входного файла и выполните эхо-вывод. Как только вы это сделаете, вы являетесь частью этого пути.

Затем поместите числа в целые переменные. Это будет включать в себя кастинг.

Затем выполните эту математику и выплюните выход.

Выполняя небольшие задачи, проблема становится намного проще.

1

К сожалению, я не совсем понимаю ваши критерии, но вы, похоже, можете понять формулу, и это все, что вам нужно. Я рекомендую BufferedReader и FileReader получать текст из файла. Оттуда, это хорошая идея, чтобы начать синтаксический анализ ваших строк вокруг пространств (есть метод для этого), и вы можете затем преобразовать их в целые числа. Надеюсь, это положит вас на правильный путь.

1

Сначала вам необходимо сначала прочитать программирование в целом, потому что это должен быть один из основных вопросов, на которые вы должны ответить.

Я могу дать вам грубый эскиз о том, как это сделать:

  1. Построить File объект из того места, где «документ» находится.
  2. Прочтите ввод, определенно для новичков, я бы рекомендовал использовать класс Scanner.
  3. Прочитать первые Integer или Line, сохраните этот номер.
  4. Прочитать следующую пару Integer s или Line s.
  5. Умножить считанные числа.
  6. Вывести результат умножения.

Вы также можете проверить некоторые другие проблемы:

  • В случае, если ваш разрыв программы на неправильный ввод?
  • Если ваша программа продолжит работу с неправильным вводом?

Вы должны взять эти вещи во внимание при чтении либо Integer с или в Line сек из документа.

1

У меня возникли проблемы с BufferedReader. Поэтому, чтобы избежать накладных расходов на преобразование типов, вы можете рассмотреть возможность использования Scanner. В вашем случае,

Scanner scanner = new Scanner ("Path to your file with backslash characters escaped"); 
int myNumber = scanner.nextInt(); 

Он будет напрямую назначить номер из файла в переменную.

1
  1. Создать сканер для чтения файла
  2. Пропустить первую строку
  3. перебрать все числа
  4. Умножить число пар
  5. ли что-то с этими цифрами
import java.io.File; 
    import java.io.FileNotFoundException; 
    import java.util.Scanner; 

    public class Test { 
     public static void main(String[] args) throws FileNotFoundException { 
      // 1. Create a scanner to read the file 
       Scanner file = new Scanner(new File("textfile.txt")); 
      // 2. Skip the first line 
       file.nextLine(); 
      // 3. Iterate over all the numbers 
       while(file.hasNextInt()) { 
        int hours = file.nextInt(); 
        int wagePerHour = file.nextInt(); 
      // 4. Multiply number pairs 
        int totalWage = hours * wagePerHour; 
      // 5. Do something with those numbers 
        <do something with the numbers> 
       } 
     } 
    } 
+0

Пропуск первой строки, похоже, не соответствует требованиям OP. Представьте себе, что приложение должно будет сделать что-то еще, кроме вывода данных в будущем. Затем может появиться целый массив ошибок, если программе будет разрешено анализировать не указанные (кроме входных данных number_of_employee_count) входные данные. – skiwi

+0

«Я пытаюсь найти, как Java может пропустить строку 1, прочитать строку два и умножить два числа, а затем сделать то же самое для других строк». Я предполагаю, что эти цифры будут в собственном файле, особенно потому, что это очень похоже на образовательное задание. – quantumkayos

+0

Извините, мой плохой, я его не читал. Хотя ответ - это то, чего хочет OP, я все же считаю, что это плохая практика. – skiwi

1

Это пропустит первую строку и распечатает умноженные значения для каждого последующего ng line. Предполагается, что вы передаете файл как аргумент командной строки.

import java.util.Scanner; 
import java.io.File; 
import java.io.FileNotFoundException; 

public class Multiply{ 
    public static void main(String[] args) throws FileNotFoundException{ 
     File file = new File(args[0]); 

     Scanner sc = new Scanner(file); 

     // skip the first line 
     sc.nextLine(); 

     int num_people; 
     int hours; 
     int total; 

     while(sc.hasNext()){ 
      num_people = sc.nextInt(); 
      hours = sc.nextInt(); 

      total = num_people * hours; 
      System.out.println(total); 
     } 
    } 
} 
+0

Пропуск первой линии - не очень хороший подход. Номер есть по какой-то причине, см. Мой комментарий к @quantumkayos для получения дополнительной информации. – skiwi

Смежные вопросы