2015-04-17 4 views
1

Я получил задание, где мне нужно написать программу, которая получает вход, который похож на 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); 
    } 
} 
+0

Что вы хотите сказать? Какой результат вы получаете при запуске кода? – SMA

ответ

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

Вы писали l =+ 1;, но я думаю, что это должно быть l += 1.

Смежные вопросы