2012-10-09 32 views
0

我有這個代碼來計算輸入字符串中*的數量。但我需要從文本文件中找到它。任何想法?從文本文件中計算*的數量

import java.lang.String; 
import java.io.*; 
import java.util.*; 

public class CountStars { 

    public static void main(String args[]) throws IOException { 
     BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter the String:"); 
     String text = bf.readLine(); 

     int count = 0; 
     for (int i = 0; i < text.length(); i++) { 
      char c = text.charAt(i); 
      if (c=='*') { 
       count++; 
      } 
     } 
     System.out.println("The number of stars in the given sentence are " + count); 
    } 
} 
+0

什麼問題?什麼不起作用?什麼是?你有什麼試圖解決它? – Eric

+0

類名稱是'CountVowels',它計數'*'。很好.. –

+0

你可以找到從文件中讀取文件的BufferedReader構造函數。順便說一句,你應該使用[Scanner](http://docs.oracle.com/javase/7/docs/api/java/util /Scanner.html#Scanner%28java.io.File%29)類從文件中讀取輸入.. –

回答

0

我們可以寫如下簡單的事:

  int count= 0; 
      FileReader fr = new FileReader("test.txt"); 
      BufferedReader br = new BufferedReader(fr); 
      String text; 
      while((text= br.readLine()) != null) { 
        for (int i = 0; i < text.length(); i++) { 
         char c = text.charAt(i); 
         if (c=='*') { 
          count++; 
         } 
        }     
       } 

       System.out.println("Count Stars = "+ count); 
+0

我們可以認爲這是一個作業Yogendra,請不要發佈作業的直接答案。 –

+0

當然。會保重。謝謝! –

0

用下面的行替換BufferedReader行。

Path path = Paths.get(aFileName); 
BufferedReader bf = Files.newBufferedReader(path, ENCODING) 

其中aFileName是文件路徑,您可以使用參數或創建函數。

更新1: 謝謝貓頭鷹。如果版本< 7.

BufferedReader bf = new BufferedReader (new FileReader (aFileName)); 

問候, Tamour

+0

注意:這個答案要求Java 7. –

1

使用一個FileInputStreamInputStreamReader在一起,而指定 使用下面的行。 "UTF-8"是一個相當安全的賭注。然後閱讀每行,並計算出'*'個字符的數量。然後創建一個總計,然後不要忘記關閉文件。