从txt文件中计算一个

时间:2017-04-26 21:44:10

标签: java string java.util.scanner

我正在尝试解决一个练习:我有一个txt文件,其中0和3的图像(20行x 20列)是随机的。在每个图像(20x20)之间存在一个空行的间隙。

根据这个txt文件,我必须计算出这些图像中有多少比0还多1。最后,我还需要在一个图像中找到最大数量的1。

到目前为止,这是我的代码......但我有点失落

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

public class Main {

    public static void main(String[] args) {

        File input = new File("path to my txt file");
        Scanner scanner = new Scanner(new File("path to my txt file"));

        int counter = 0;
        while (scanner.hasNext()){
            String word1 = scanner.next();
            String word2 = scanner.next();
            boolean switcher = false;


        int howManyOnes ("//path to my image file????") {
            int ones = 0;
            for (int i = 0; i < 20; i++) {
                for (int j = 0; j < 20; j++) {
                    ones +=?[i][j];
                }
            }
            return ones;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

以下是我的理解,我将以此为基础。

您的输入是一个文本文件,其中每个非空白行总共有20个字符,其中一些字符是&#39; 1&#39;其中一些是&#39; 0&#39;。

&#34;图像&#34;是一系列连续的非空行。当一个空行出现时,它表示一个&#34;图像的结束&#34;以及下一个&#34;图像&#34;。

的开头

您的目标是:

  

计算这些图片中有多少图像比0更多1。

  

找到一张图片中出现的最高数量1。

由于这似乎是一个家庭作业类型的问题,我会先给你一些关于如何设计代码的指导,如果你还在努力,我会提供额外的细节。请参阅how to ask and answer homework questions

<强>假设

  1. 您可以使用String类的任何方法。
  2. 考虑您要跟踪的内容以及您希望跟踪它们的范围。您需要能够识别图像的开始和结束时间,并跟踪您在该图像中看到的1和0。也就是说,当图像开始时,该图像的1的数量和0的数量应该为零,并且当您在图像的每一行中识别它们时,您应该递增它们。处理完图像后,您需要将这些图像重置为0以准备好处理下一张图像。

    在您处理单张图片的同时,您需要确定该图片中1的数量是否大于目前为止您在任何其他图片中看到的1的数量如果它跟踪那个价值。该值的范围大于之前提到的值,因为它由图像的全部中的1的数量确定。每个图像必须 NOT 重置。类似地,具有多于0的1的图像的数量也具有这种范围 - 它应该 NOT 重置每个图像,而应该保持它直到整个文件被处理。

    接下来,考虑如何确定图像中的1和0的数量。看起来你正在考虑循环遍历每个角色,你可以这样做,但有一种更简单的方法,它与我提到的假设有关。

    我希望这能让你开始。在您编写更多代码时请更新您的问题,我也很乐意更新我的答案。