Hi All, I want to search this word "(Error: 87)" in my text file using Java code

68 views Asked by At

I was trying to search this complete word "(Error: 87)" in my text file. I used below java code.

    String path = "C:\\Temp\\Error_Hunter";
    String fileName = "\\nvr-service.txt";
    String testWord = "(Error: 87)";
    int tLen = testWord.length();
    int wordCntr = 0;
    String file1 = path + fileName;
    boolean check;
    try{
        FileInputStream fstream = new FileInputStream(file1);
        BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        String strLine;        
        //Read File Line By Line
        while((strLine = br.readLine()) != null){                
            //check to see whether testWord occurs at least once in the line of text
            check = strLine.toLowerCase().contains(testWord.toLowerCase());
            if(check){                    
                //get the line, and parse its words into a String array
                String[] lineWords = strLine.split("\\s+");                    
                for(String w : lineWords)
                {

                    if(w.length() >= tLen){

                        String word = w.substring(0,tLen).trim();                                                        
                        if(word.equalsIgnoreCase(testWord))
                        {                                
                            wordCntr++;
                        }                            
                    }
                }                    
            }   
        }            
        System.out.println("total is: " + wordCntr);
    //Close the input stream
    br.close();
    } catch(Exception e){
        e.printStackTrace();
    }

In my text file, the word has 104 hits. but this is not finding the word. because it contain space in between. Kindly suggest something or edit in the code itself.

1

There are 1 answers

0
Kartik On BEST ANSWER

Instead of

String[] lineWords = strLine.split("\\s+");

do

String[] tokens = strLine.split("(Error: 87)");

And then the number of occurrences of (Error: 87) in that line would be tokens.length - 1.