WordExtractor
クラス(apache POI)からテキストを抽出していますが、一部の.doc
ファイルでエラーが発生しています。最も.docx
と.doc
ファイルの場合getText()のエラー。javaのreplaceAll()
HWPFDocument docx = new HWPFDocument(new FileInputStream(file));
WordExtractor we = new WordExtractor(docx);
String T = we.getText().replaceAll("\\n", " ").replaceAll("\\r", " ");
それが仕事の罰金です:デバッグ、私は問題がある行には、ここで最後のものであることがわかりました。
エラーメッセージは次のとおりです。
Exception in thread "main" java.lang.RuntimeException:
java.lang.IllegalArgumentException: The end (4958) must not be before the start (4990)
私はそれを解決することができますか?
でフルスタックトレースを追加してください。 – Berger
通常、正規表現を使用している場合を除き、['replace'](http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#replace-java.lang.CharSequence -java.lang.CharSequence-)を使用します(http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#replaceAll-java.lang.String- java.lang.String-)。 – khelwood
'replaceAll'によって明示的にスローされていないので、' we.getText() 'の呼び出しでなければなりません。 WordExtractorをどのように初期化したか、Word文書が破損しているか、ライブラリにバグがありますかに問題があります。 'we'オブジェクトが作成される行を投稿してください。 – Michael