這是一段代碼片段。它給了arrayindexoutofboundexception。不知道爲什麼?爲什麼在重新安排doc文件段時數組索引超出限制的異常?
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
public class wordcount
{
public static void main(String[] args) throws Exception
{
File file = new File("E:\\myFiles\\abc.doc");
FileInputStream fis=new FileInputStream(file.getAbsolutePath());
HWPFDocument document=new HWPFDocument(fis);
WordExtractor extractor = new WordExtractor(document);
String [] fileData = extractor.getParagraphText();
for (int i = 0; i < fileData.length; i++)
{
// System.out.println(fileData[i].toString());
String[] paraword = fileData[i].toString().split(" ");
// out.println(paraword.length);
if(paraword[i].length() == 0)
{
System.out.println("\n");
}
else if(paraword[i].length() > 0 && paraword[i].length() < 12)
{
for(int k=0 ; k < paraword[i].length()-1 ; k++)
{
System.out.println(paraword[k].toString());
}
}
else if(paraword[i].length() >= 12 )
{
for(int k=0 ; k < 12 ; k++)
{
System.out.println(paraword[k].toString());
}
}
System.out.println("\n");
}
}
}
這是abc.doc文件
注意的圖像:預期輸出將Java控制檯上進行打印。
並且輸出將在每行中包含12個單詞。但是執行第一行後會發生錯誤。
任何幫助,將不勝感激
TIA
感謝您的回覆。我用'paraword.length'改變了'paraword [i] .length()',並且Array索引超出界限的問題解決了。但是,其印刷的文字只有12個字多於12個字。 – ARNAB2012
如果您想要在同一行上打印單詞,則需要使用'System.out.print()'方法而不是'System.out.println()'。如果你使用'System.out.println(「\ n」)'它應該給你兩行而不是一行。爲了讓它寫出段落中的所有行,它會變得更加複雜,我不得不更多地思考它。 –
謝謝艾米。問題已經解決了。我在下面發佈修改後的代碼。 – ARNAB2012