计算线条和单词

时间:2015-04-17 09:14:39

标签: java string input

我收到了一个作业,我必须编写一个接收输入的程序,就像一个2D数组,然后沿着这条线计算单词,并计算行数。

例如:

Inky Pinky Blinky Clyde Luigi Mario Bowser

02

12

56

35 

24 

45 

23 

14

这应该吐出结果7 9

但是我的代码似乎没有打印出行的第二个结果,程序只是继续运行。它应该通过使用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);
    }
}

2 个答案:

答案 0 :(得分:0)

你写了l =+ 1;,但我认为它应该是l += 1

答案 1 :(得分:0)

罗伯特指出,计算线路时出错。但实际上,您还需要检查该行是否为空,否则您的计数可能会被破坏。所以我改变了你的代码。当您阅读第一行时,主要的变化也在计算。

此外,我将变量名称更改为camelcase,如java conventions所示。你应该遵循这一点。

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);
    }
}