2015-12-29 37 views
0

我想在運行此代碼時將某些內容放入StdIn中,例如一行文本。代碼應該輸出文本字符串中的行數,字符數和單詞數。我目前能夠計算出字符和單詞的數量,但我無法找到行數。我怎樣才能在這裏實現?計數StdIn的行數和字符數

public class WordCount 
{ 
    public static void main(String [] args){ 
     int words = 0, lines = 0, characters = 0; 
     while (!StdIn.isEmpty()) { 
      String word = StdIn.readString(); 
      characters += word.length(); 
      words++; 
     } 
     StdOut.println("There are " + words + "words"); 
     StdOut.println("There are " + characters + "characters"); 
    } 
} 
+1

什麼是'StdIn'? – Tom

+0

什麼是'StdIn'和'StdIn.readString();'方法的內容。 – YoungHobbit

+0

@Tom StdIn是來自[本網站]的圖書館(http://introcs.cs.princeton.edu/java/15inout/)。有4個程序需要下載,因爲它們以某種方式相互聯鎖。 –

回答

1

doc,你可以使用的方法readLine()而不是readString()。這樣你就可以輕鬆獲得線條的數量。在獲得該行之後,您可以將它拆分爲空間並計算單詞的數量。循環訪問每個單詞以獲取字符數。

public class WordCount 
{ 
    public static void main(String [] args){ 
     int words = 0, lines = 0, characters = 0; 
     while (!StdIn.isEmpty()) { 
      String line = StdIn.readLine(); 
      lines++; 
      String[] lineWords = line.split("\\s+"); 
      words += lineWords.length; 
      for(String word : lineWords) 
       characters += word.length(); 
     } 
     StdOut.println("There are " + lines + "lines"); 
     StdOut.println("There are " + words + "words"); 
     StdOut.println("There are " + characters + "characters"); 
    } 
} 
+0

太好了,謝謝你的回答! –