Обнаружение префиксов в текстовом файле

Я пытаюсь поймать все слова, которые содержат определенные 4-буквенные префиксы в целом текстовом файле. Эти префиксы указываются в виде списка массивов под названием "keywordList". То, как код в настоящее время, я ловлю все слова, которые должны быть пойманы (которые содержат какие-либо префиксы в списке массивов "keywordList"), однако, я получаю дубликаты, и по некоторым причинам иногда он печатает пустую строку (s) после того, как он напечатает одно из обнаруженных слов. Другими словами, шаблон, в котором напечатан вывод, не имеет какой-либо однородности.

Консольный вывод:

Result: 
Result:APXP5558899
Result: 
Result: 
Result:IGC088838383833
Result: 
Result:CDAV
Result: 
Result:ASHGJHSGDSAGD
Result: 
Result:MOE1477347384
Result: 
Result:GHTS348939438
Result:ASHGJHSGDSAGD
Result: 
Result:MOE1477347384
Result: 
Result:GHTS348939438
Result:EGLVxxxxxxxxxxxxx
Result: 
Result:ESLVililillililil
Result: 
Result:HYSC999xxx
Result:  

Я хотел бы, чтобы он печатал с такими результатами:

Result:APXP5558899
Result:IGC088838383833
Result:CDAV
Result:ASHGJHSGDSAGD
Result:MOE1477347384
Result:GHTS348939438
Result:ASHGJHSGDSAGD
Result:EGLVxxxxxxxxxxxxx
Result:ESLVililillililil
Result:HYSC999xxx

Содержание текстового файла:

jkjfkjkjfkjkf jkjkfiiiiidijdjd
ddffdf
ddjjdkkii
jjjjd
sdhfjhdsfhjdsh APXP5558899 fdfsdsfsfsfgsfsdg
asjhdjsahjdhjsahd IGC088838383833 lllllllllpppppssss
JIJSIJSIJSJISJS
CDAV 337990099
kkkkkksslslsls
ASHGJHSGDSAGD MOE1477347384 GHTS348939438

EGLVxxxxxxxxxxxxx ESLVililillililil jdjdjdjdjdjdjddjdj
HYSC999xxx  6969696969696

Мой текущий код:

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class searchPdftext
{
public static ArrayList<String> keywordList;
public static String []  TestArray;
public static String Possibilities;

public static void main(String args[]) throws Exception
{

    //Possibilities =  keyword : TestArray;// i took out an =
    int tokencount;

    FileReader fr = new FileReader("EvergreenDME.txt");
    BufferedReader br = new BufferedReader(fr);

    String s = "";
  int linecount = 0;      
  keywordList = new ArrayList<String>(Arrays.asList("APXP",  "IGC0", "CDAV",  "COSB", 
         "ESLV",  "2ISU",  "SUDU",  "5BUT", "HYSC", 
         "BNGF", "45HG", "NBCH", "MOE1", "RFGD",
         "GHTS"));  


    String line;
    while ((s = br.readLine()) != null) {
        String[] lineWordList = s.split(" ");
        for (String word : lineWordList) {

             for (String keyword : keywordList) {
                 if (word.contains(keyword)) {
                     //System.out.println(s);
                     test(s);
                     break;


                 }
             }
         }
     }
}


private static void test(String text) {
Matcher m = Pattern.compile("\\b"+keywordList+".*?\\b").matcher(text);//"\\bABC123.*?\\b"____Word boundary // (?<=^|\s)ABC123\S*__For White spaces
if (m.find()) {
    System.out.println("Result:" + m.group()) ;
    while (m.find()) {
        System.out.println("Result:" + m.group()) ;//System.out.println("Result:" + m.group() +" ");
    }
} else {
    System.out.println("Not found: " + text);
}
}
}

0 ответов

Другие вопросы по тегам