Java计算文件中的特定char

时间:2014-03-10 11:38:40

标签: java loops search count char

我需要计算文件中特定字符的数量。用户将指定我只需要检查文件中有多少个字符的字符。

package assignmentoneqone;
import java.util.Scanner;
import java.io.FileReader;
import java.io.File;
import java.io.IOException;

/**
 *
 * @author Hannes
 */
public class AssignmentOneQOne {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner kb = new Scanner(System.in);

        String fileLoc;
        String userChar;

        //User specify the file and character

        System.out.println("Enter the file name");
        fileLoc = kb.nextLine();
        System.out.println("Enter a character");
        userChar = kb.nextLine();

        File file = new File(fileLoc);
        try
        {
        FileReader fw = new FileReader(file);

这是我应该搜索角色的地方。

        }
        catch(IOException e)
                {
                System.out.println("The file does not exist.");
                }                 
    }
}

4 个答案:

答案 0 :(得分:0)

使用美丽的番石榴......(如果这是一个选项)

        int result = CharMatcher.is('t').countIn("test"); //of course for each line instead of 'test'
    System.out.println(result);

答案 1 :(得分:0)

打开你的文件,在while循环中读取行的行(谷歌如何)。

在你的while循环中,你可以计算一个像:

这样的字符
int counter = 0;
char[] arr = line.toCharArray();

for (char c: arr){
    if (c == '<your char>' || c== '<YOUR CHAR UPPERCASE >')
      counter++;
}

答案 2 :(得分:0)

        file FileReader fw = new FileReader(file);
        int a = 0;
        int charCount = 0;
        while(( a = fw.read())!= -1)
        {
            byte b = (byte) a;
            if(b == 32 || b == 10) // Ascii value of space and enter
            {
                continue;
            }
            charCount++;
        }
        System.out.println("The character count is "+charCount);

答案 3 :(得分:0)

如果您正在寻找oneliner:

System.out.println(myString.replaceAll("[^a]+", "").length());

注意:可能不是最快的。