How to count search words (keywords) in a text file in Java

1 Answer

0 votes
package javaapplication1;

import java.io.*;

public class JavaApplication1 
{
    public static void main(String[] args) 
    {
        String[] words = { "stripos", "click", "substr", "save", "search", "sizeof" };
        int[] count = new int[] {0,0,0,0,0,0};
        String fileName = "d:\\url.php";

        try
        {
            File file = new File("d:\\url.php");
            FileReader fr = new FileReader(file);
            try (BufferedReader br = new BufferedReader(fr))
            {
                 String line;
                 int pos = 0;

                 while((line = br.readLine()) != null)
                 {
                     for (int i = 0; i < 6; i++)
                     {
                         while ( (pos = line.indexOf(words[i], pos)) != -1)
                         {
                            pos = pos + words[i].length();
                            count[i]++;
                         }
                     } 
                 }
                 for (int i = 0; i < 6; i++)
                    System.out.format("The word: %-10s appear %3d times in file: %s\n", words[i], count[i], 
                                                                                        fileName);

            }
            catch (Exception e)
            {
                   System.out.println(e.toString());
            }  
        }
        catch (Exception e)
        {
            System.out.println("Error reading file: " + e.getMessage());  
        }
    }
}

/*

run:

The word: stripos    appear   5 times in file: d:\\url.php
The word: click      appear  50 times in file: d:\\url.php
The word: substr     appear  14 times in file: d:\\url.php
The word: save       appear   4 times in file: d:\\url.php
The word: search     appear   7 times in file: d:\\url.php
The word: sizeof     appear   2 times in file: d:\\url.php

*/



answered Mar 11, 2015 by avibootz

Related questions

1 answer 185 views
1 answer 301 views
1 answer 210 views
1 answer 161 views
1 answer 158 views
1 answer 173 views
1 answer 178 views
...