Разбор docx и игнорирование значков

#java

#ява #java

Вопрос:

Мне нужно извлечь список всех слов из документа docx, сначала я делаю это, чтобы создать строку со всеми словами :

 String newTxt = consultantId.toString();
if (filePath.contains("docx")){
   wordCounter.writeDocxToTxt(newTxt,wordCounter.parseDOCX(filePath));
}else if (filePath.contains("doc")){
   wordCounter.writeDocxToTxt(newTxt,wordCounter.parseDOC(filePath));
}
        
public String parseDOCX(String fileNameorFilePath )
    {
        try {
            XWPFDocument docx = new XWPFDocument(new FileInputStream(fileNameorFilePath));
            XWPFWordExtractor xwpfWordExtractor = new XWPFWordExtractor(docx);
            return xwpfWordExtractor.getText();
        }
        catch ( Exception error )
        {
            throw  new RuntimeException(error);
        }
    }

public void writeDocxToTxt(String newTxtName, String parsedDocx) throws Exception
    {
       BufferedWriter bw = new BufferedWriter(new FileWriter(new File(newTxtName)));
       bw.write(parsedDocx);
       if(bw!=null)
          bw.close();
    }
  

Это работает, я получаю строку с каждым словом. Но я не хочу получать какой-либо символ, подобный значку телефона ниже :

введите описание изображения здесь

Возможно ли игнорировать значки? Как я могу это сделать?

Ответ №1:

Это может быть шрифт wingdings или что-то в этом роде, но, похоже, вам повезло, и это символ Unicode.

 String s = "u260E"; // Black telephone
s = s.replaceAll("\p{So}", " ");
  

Где So обозначает другие символы. Смотрите javadocs шаблона.