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

如何使用JAVA将文本文件中的数字相乘,java,Java,我正在尝试使用JAVA从文本文件中乘法,但不知道如何实现 4 12 4 16 8 14 1 12 8 第一行的第一个数字表示文档中有多少人(第2行“12 4”表示第一个人,“12 8”表示最后一个人) 我试图找到Java如何跳过第1行,读取第2行并将这两个数字相乘,然后对其他行执行相同的操作 谁能解释一下我是怎么做到的 干杯 以下是您需要的所有东西: 要读取文件,请执行以下操作: 要强制转换为整数: 乘法:使用*运算符 假设你是作为家庭作业被分配的,或者你在课堂上没有集中注意力。学习编程的关键

我正在尝试使用JAVA从文本文件中乘法,但不知道如何实现

4
12 4
16 8
14 1
12 8
第一行的第一个数字表示文档中有多少人(第2行“12 4”表示第一个人,“12 8”表示最后一个人)


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

谁能解释一下我是怎么做到的


干杯

以下是您需要的所有东西:

  • 要读取文件,请执行以下操作:
  • 要强制转换为整数:
  • 乘法:使用
    *
    运算符

  • 假设你是作为家庭作业被分配的,或者你在课堂上没有集中注意力。学习编程的关键是将任务分解为可管理的任务

    在您的情况下,编写一个程序来读取输入文件并回显输出。一旦你做到了这一点,你就是实现这一目标的一部分

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

    然后进行数学运算并输出结果


    通过执行小任务,问题变得容易多了。

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

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

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

  • 在“文档”所在的位置构建一个
    文件
    对象
  • 阅读输入,对于新手来说,我建议使用
    Scanner
  • 读取第一个
    整数
    ,保存此数字
  • 读取以下一对
    整数
    s或
    s
  • 将读取的数字相乘
  • 输出乘法结果
  • 您可能还需要检查一些其他问题:

    • 您的程序是否因输入错误而中断
    • 您的程序是否应该在输入错误的情况下继续

    在从文档中读取
    整数
    s或
    s时,您应该考虑这些问题。

    我发现您在BufferedReader方面有问题。因此,为了避免类型转换的开销,可以考虑使用扫描仪。 就你而言

    Scanner scanner = new Scanner ("Path to your file with backslash characters escaped");
    int myNumber = scanner.nextInt();
    
    它将直接将文件中的数字分配给变量

  • 创建扫描仪以读取文件
  • 跳过第一行
  • 迭代所有数字
  • 乘法对
  • 用这些数字做点什么
  • 导入java.io.File;
    导入java.io.FileNotFoundException;
    导入java.util.Scanner;
    公开课考试{
    公共静态void main(字符串[]args)引发FileNotFoundException{
    //1.创建扫描仪以读取文件
    扫描仪文件=新扫描仪(新文件(“textfile.txt”);
    //2.跳过第一行
    file.nextLine();
    //3.迭代所有数字
    while(文件.hasNextInt()){
    int hours=file.nextInt();
    int wagePerHour=file.nextInt();
    //4.将数字对相乘
    整数总工资=小时*每小时工资;
    //5.用这些数字做点什么
    }
    }
    }
    
    这将跳过第一行,并打印出每行的乘数值。这是假设您将文件作为命令行参数传递

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

    给我们一些努力怎么样。你尝试过什么?即使是新手也可以投入一点工作。谷歌为你服务。使用列表存储从文件读取的数据怎么样。此外,如果元素是固定长度的平面文件,则使用索引进行检索可以帮助您获取位于第n个位置的元素。只是一个建议。@user3071724试着通过。这里也做了类似的事情。跳过第一行似乎不是OP想要的。想象一下,应用程序将来需要做的不是输出数据。然后,如果允许程序解析非指定(超过员工计数输入的数量)输入,则会弹出一个完整的错误数组。“我试图找到Java如何跳过第1行,读取第2行,将这两个数字相乘,然后对其他行执行相同的操作。”我假设这些数字将在它们自己的文件中,特别是因为这看起来很像一个教育作业。对不起,我的错,我还没有读过。虽然现在的答案是OP想要的,但我仍然认为这样做是一种不好的做法。跳过第一行不是一个好方法。这个数字是有原因的,更多信息请参见我在@quantumkayos上的评论。
    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); 
            }
        }
    }