2017-04-26 97 views
0

我想解决一个问题:我有一个带有图像(20行x 20列)的0和1的随机文本文件。在每张图片(20x20)之间,都有一条空行。从txt文件中计数

基于这个txt文件,我必须计算出这些图像中有多少个比1多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; 
     } 
    } 
} 
+2

您似乎已经在方法中编写了一个方法。这不会编译? –

回答

0

这是我的理解上,我将立足我的答案。

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

“图像”是连续的非空行的集合。当一条空白行出现时,它表示一个“图像”的结束和下一个“图像”的开始。

你的目标是:

来计算有多少这些图像有更多的1比0。

发现1的出现在一个图像的最高数量。

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

假设

  1. 你被允许使用任何String类的方法。

考虑你想跟踪的事情以及你想跟踪他们的范围。您需要能够识别图像何时开始和结束,并跟踪您在图像中看到多少个1和0。也就是说,当图像开始时,图像的1和0的数量应该为零,并且您应该增加它们,因为您在图像的每一行中标识它们。图像处理完毕后,您需要将这些图像重置为0以准备处理下一张图像。

与此同时,当您完成一幅图像的处理时,您需要确定该图像中1的数目是否大于迄今为止在任何其他图像中看到的1的数目,如果是跟踪该值。该值的范围大于前面提到的值,因为它是由所有中的1的数量确定的。它必须不要与每个图像重置。类似地,具有比1更多1的图像的数量也具有这种范围 - 对于每个图像应该重置不是,而是应该保留它直到整个文件已经被处理。

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

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