2017-04-26 82 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的數目。看起來你正在考慮循環每個角色,你可以這樣做,但有一個更簡單的方法,它與我提到的假設有關。

我希望這能讓你開始。請在編寫更多代碼時更新您的問題,我也很樂意更新我的答案。