簡體   English   中英

計數行和字

[英]Counting lines and words

我收到了一個作業,其中我必須編寫一個程序來接收輸入,就像一個2D數組,並計算沿線的單詞,並計算線的數量。

例如:

Inky Pinky Blinky Clyde Luigi Mario Bowser

02

12

56

35 

24 

45 

23 

14

這應該吐出結果7 9

但是我的代碼似乎並沒有打印出第二行的結果,該程序只是繼續運行。 應該通過計算空格來計數單詞,並通過使用hasNextLine()hasNextLine()行數。 如果有人有其他想法,我也會開放。

public class Duplicate {

    String Sentence;
    String Store[];

    public String getString(Scanner s) {
        Sentence = s.nextLine();

        return Sentence;
    }

    public void count() {

        Store = Sentence.split(" ");
        System.out.print(Store.length + " ");
    }

    public void countLine(Scanner s) {
        int l = 0;
        while (s.hasNextLine()) {
            l = +1;
            s.nextLine();
        }

        System.out.print(l);
    }
}

您寫了l =+ 1; 但我認為應該是l += 1

正如羅伯特(Robert)指出的那樣,計算行數時有錯誤。 但是實際上,您還需要檢查行是否為空,否則計數可能會被破壞。 因此,我對您的代碼做了一些更改。 當您閱讀第一行時,主要的變化是也計算在內。

另外,我將變量名更改為camelcase,如Java 約定所建議。 你應該遵循。

public class Duplicate {

    private String sentence;
    private String store[];
    private int countLines = 0;

    public String getString(Scanner s) {
        sentence = s.nextLine();
        countLines++;
        return sentence;
    }

    public void count() {
        store = sentence.split(" ");
        System.out.print(store.length + " ");
    }

    public void countLine(Scanner s) {
        while (s.hasNextLine()) {
            String line = s.nextLine();

            //verify if line is not empty
            if (!line.isEmpty())
                countLines +=1;
        }

        System.out.print(countLines);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM