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

3 回答 3

1

一起使用 aFileInputStream和 a InputStreamReader,同时指定"UTF-8"是一个相当安全的赌注。然后阅读每一行并'*'像你已经做的那样计算字符数。然后创建一个总计,之后不要忘记关闭文件。

于 2012-10-09T17:54:59.320 回答
0

用下面的行替换 BufferedReader 行。

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

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

更新1:感谢owlstead。如果版本 < 7,请使用以下行。

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

问候, 塔穆尔

于 2012-10-09T17:54:30.177 回答
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);
于 2012-10-09T18:15:32.063 回答