java - 解析 docx 并忽略图标
问题描述
我需要从 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();
}
它有效,我得到了每个单词的字符串。但我不想得到像下面的电话图标这样的字符:
是否可以忽略图标?我怎样才能做到这一点?
解决方案
它可能来自字体wingdings等,但看起来你很幸运,它是一个Unicode符号。
String s = "\u260E"; // Black telephone
s = s.replaceAll("\\p{So}", " ");
whereSo
代表其他符号。请参阅Pattern的 javadocs 。
推荐阅读
- python - 如何重新启动kivy?
- c# - 解析日志文件,不明确的分隔符
- python - 使用 BeautifulSoup 解析却一无所获
- sql-server - 如何将文件和其他信息发布到控制器并将其保存在 sql server 中?
- python - 从一个整数列表到另一个整数列表的最小转换次数
- postgresql - 如何在 PostgreSQL 中锁定 SELECT?
- r - 当情节中有一些阿拉伯或波斯字母时,如何使用逆戟鲸保存情节?
- azure - 我的查询是否有任何问题以获取我的令牌?
- cluster-analysis - 查找 DBLP 数据集中的簇数
- c# - ContentPresenter 而不是 UserControl 被添加到我的自定义面板