Java计算字符在文件中出现的次数

时间:2017-06-18 21:37:03

标签: java

我知道之前可能已经提出过这个问题,但在浏览了其他问题后,我无法找到解决问题的方法。 所以我试图计算某个字符出现在.txt文件中的次数。我的代码可以计算一个字符出现的次数,但它不会忽略字母的情况,所以当它应该输出15'a'而不是13'a'因为我​​的.txt中有两个大写字母A.文件。

这是我的代码:

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class Program6 {
ArrayList<Integer> countOfLetters;
int count(String filename, char ch)
{
System.out.println(ch); 
File fin = new File(filename);      
    Scanner scan = null;    
    try{

    }
    catch(Exception e)
    {

    }
    return 0;
}   
void writeCountResult ( String filename )
{
    File fin = new File(filename);      
}
public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    Program6 program6 = new Program6();
    String filename = "xanadu.txt";
    program6.countOfLetters = new ArrayList<Integer>();
    for(int i=65;i<91;i++)
    {
        int num = program6.count(filename,(char)i);
        program6.countOfLetters.add(num);
    }
    program6.writeCountResult("output.txt");

    //This code counts the number of times "a" appears in the file but  not "A" BufferedReader reader = new BufferedReader(new                  FileReader("xanadu.txt"));
        int ch;
        char charToSearch='a';      
        int counter=0;
        while((ch=reader.read()) != -1) {
            if(charToSearch == (char)ch) {
                counter++;
            }
        };
        reader.close();

        System.out.println(counter); 
 }

}

第2部分:现在编写另一种方法,在名为“output.txt”的文件中写入上述任意三个字母的计数。使用以下方法标头:void writeCountResult(String filename)。正如您所看到的,这已经存在于我的代码中,但我不知道下一步该将字符计入另一个txt文件中的output.txt。

2 个答案:

答案 0 :(得分:2)

修改 if 语句,检查charToSearch是否等于该字符的大写版本。

if (charToSearch == Character.toLowerCase((char)ch) || charToSearch == Character.toUpperCase((char)ch) {
                counter++;
}

答案 1 :(得分:0)

chIn是您要搜索的char变量。

 int asci;     
 asci = br.read();
 if(asci >=65 && asci <= 90)
    asci += 32;
if (chIn >= 65 && chIn<=90)
    chIn+= 32;

if(asci == chIn)
   count++;

您可以尝试使用上述逻辑来计算大小写字符。