Java程序 - 从txt文件中读取数字数据

时间:2015-03-04 21:49:52

标签: java arrays algorithm text-files

此Java程序用于从包含多个整数的txt文件中查找数据。我已经找到了运行程序的最大值,平均值的代码。很多人应该很简单,但我在编程方面经验丰富,所以请耐心等待。


我遇到的问题有三个代码如下。

  1. 高于平均水平的数字
  2. 素数的数量
  3. 查找总金额
  4. 有谁知道这样做的方法? 谢谢。任何建议都有帮助。


    这是20个数字的txt文件样本

    1. 1
    2. 12
    3. 34
    4. 54
    5. 36
    6. 76
    7. 67
    8. 86
    9. 45
    10. 44
    11. 33
    12. 22
    13. 2
    14. 4
    15. 7
    16. 87
    17. 89
    18. 99
    19. 432
    20. 543
    21. 列出项目

      package Assignment1;
      
      import java.io.File;
      import java.io.IOException;
      import java.util.Scanner;
      
      public class Assignment1 {
      
          public static void main(String[] args) {
              // TODO Auto-generated method stub
      
              // Define two arrays - local variables
              // Declaring 10 integers
              int[] myIntArray = new int[20];
              // Declaring 10 strings
      
              //File
              File f = new File ("inputassignment1.txt");
      
              try {
                  Scanner sc = new Scanner(f);    //Scanner
                   for (int i=0; i < myIntArray.length; i++) {
                       myIntArray[i] = sc.nextInt();
                  }
                  // Closing the file
                  sc.close();
      
             } catch (IOException e) {
                  System.out.println("Unable to create : "+e.getMessage());      
             }
      
              System.out.println("Highest number: " + maxNum(myIntArray));
      
              System.out.println("Average number: "+aveNum(myIntArray));
      //      System.out.println(allNum(myIntArray));
          //  System.out.println(avgPlus(myIntArray));
          }// end of main
      

1 个答案:

答案 0 :(得分:2)

让我们打破你的任务:

总共有3项任务:

  1. 计算有多少数字高于平均值
  2. 查找总金额
  3. 查找所有素数
  4. 其中每一项都要求您:

    • 从文本文件中读取数字(可能是数组)
    • 对它们执行一些检查(例如if isPrime(number) { primes[numPrimes] = number; numPrimes++; }
    • 计算每个号码的数量(numNumbers++
    • 总结(totalSum += number,每个数字)

    对于第一个,你需要在计数/总和之后添加另一个循环,另外两个应该通过修改第一个循环来实现(我已经在下面展示了一个例子)。

    我认为你应该能够谷歌如何做每一个。上面的代码看起来是一个很好的起点。

    int numNumbers = 0;
    int totalSum = 0;
    for (int i=0; i < myIntArray.length; i++) {
        myIntArray[i] = sc.nextInt();
        numNumbers++;
        totalSum += myIntArray[i];
    }