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

FileInputStreamを指定するときは、 aと aInputStreamReaderを一緒に使用します。かなり安全な賭けです。次に、各行を読み、すでに行ったように文字数を数えます。次に、総計を作成し、後でファイルを閉じることを忘れないでください。"UTF-8"'*'

于 2012-10-09T17:54:59.320 に答える
0

BufferedReader 行を以下の行に置き換えます。

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

ここで、aFileName はファイル パスです。args を使用するか、関数を作成できます。

Update1: 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 に答える