我有这段代码来计算输入字符串的*数。但我需要从文本文件中找到它。任何的想法?
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 :(得分:1)
同时使用FileInputStream
和InputStreamReader
,同时指定character-encoding。 "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);