そのため、Java の .doc ファイルから大文字の単語を抽出するプロジェクトに取り組んでいます。私は正規表現を使用していますが、そこでいくつかの問題が発生します。私は正規表現に慣れていませんが、これは私が使っていたものです。
private static final String REGEX = "[A-Z]+";
private void parseWordText(File file) throws IOException {
FileInputStream fs = new FileInputStream(file);
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
if (we.getParagraphText() != null) {
String[] dataArray = we.getParagraphText();
for (int i = 0; i < dataArray.length; i++) {
String data = dataArray[i].toString();
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(data);
List<String> sequences = new Vector<String>();
while (m.find()) {
sequences.add(data.substring(m.start(), m.end()));
System.out.println(data.substring(m.start(), m.end()));
}
}
}
}
上記のコードと正規表現を使用すると、すべて大文字の単語だけでなく、すべて大文字になります。基本的にHelloはダメだけどHELLOはOK。