从文本文件中计算*的数量

时间:2012-10-09 17:51:09

标签: java count

我有这段代码来计算输入字符串的*数。但我需要从文本文件中找到它。任何的想法?

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

3 个答案:

答案 0 :(得分:1)

同时使用FileInputStreamInputStreamReader,同时指定"UTF-8"是一个非常安全的赌注。然后读取每一行并计算'*'个字符的数量。然后创建一个总计,然后不要忘记关闭文件。

答案 1 :(得分:0)

将BufferedReader行替换为以下行。

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

其中aFileName是文件路径,您可以使用args或创建函数。

UPDATE1: 谢谢owlstead。 如果版本&lt;使用以下行7。

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

此致 Tamour

答案 2 :(得分: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);