如何使用JAVA将文本文件中的数字相乘

时间:2013-12-05 19:38:04

标签: java

我试图使用JAVA将文本文件中的数字相乘,但不知道如何。

4
12 4
16 8
14 1
12 8

第一行的第一个数字表示文档中有多少人(第2行和第34行; 12 4&#34;是第一个人&#34; 12 8&#34;是最后一个。)< / p>

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

我试图找到Java如何跳过第1行,读取第2行并将这两个数相乘,然后对其他行执行相同操作。

任何人都可以解释我怎么做到这一点?

干杯!

7 个答案:

答案 0 :(得分:3)

以下是您需要的所有内容:

  1. 阅读文件:Java: How to read a text file
  2. 要转换为整数:How to convert a String to an int in Java?
  3. 要相乘:使用*运算符

答案 1 :(得分:1)

假设您已将此作为家庭作业的任务,而您在课堂上没有注意到。学习编程的关键是将任务分解为可管理的任务。

在您的情况下,编写一个程序来读取输入文件并回显输出。一旦你拥有了它,你就是那里的一部分。

接下来,将数字放入整数变量中。这将涉及投射。

然后执行该数学计算并吐出输出。

通过执行小任务,问题变得更加容易。

答案 2 :(得分:1)

遗憾的是,我并不真正理解你的标准,但你似乎能够理解这个公式,而这正是你所需要的。我建议使用BufferedReader和FileReader从文件中获取文本。从那里,开始在空格周围解析你的字符串是一个好主意(有一个方法),然后你可以将它们转换为整数。希望这能让你走上正轨。

答案 3 :(得分:1)

你一开始肯定需要阅读整个编程,因为这应该是你应该能够回答的基本问题之一。

我可以给你一个关于如何做的粗略草图:

  1. 在“文档”所在的位置构建一个File对象。
  2. 阅读输入,定义为新手,我建议使用Scanner类。
  3. 阅读第一个IntegerLine,保存此号码。
  4. 阅读以下IntegerLine s。
  5. 将读取的数字相乘。
  6. 输出乘法结果。
  7. 您可能还想查看其他一些问题:

    • 您的程序是否应该输入错误的输入?
    • 您的程序是否应继续输错?

    在阅读文档中的IntegerLine时,您应该考虑这些事项。

答案 4 :(得分:1)

我发现你遇到了 BufferedReader 的问题。因此,为了避免类型转换的开销,您可以考虑使用 Scanner 。 在你的情况下,

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

它会直接将文件中的数字分配给您的变量。

答案 5 :(得分:1)

  1. 创建扫描程序以读取文件
  2. 略过第一行
  3. 迭代所有数字
  4. 乘以数字对
  5. 用这些数字做点什么
  6.     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>
                    }
            }
        }
    

答案 6 :(得分:1)

这将跳过第一行并打印出每个后续行的相乘值。这假设您将文件作为命令行参数传递。

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