我的同一段代码在一个项目中有问题
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -740
at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:881)
at java.lang.StringBuffer.substring(StringBuffer.java:416)
at org.apache.poi.hwpf.model.TextPiece.substring(TextPiece.java:87)
at org.textmining.text.extraction.WordExtractor.extractText(WordExtractor.java:179)
at com.searchforyou.read.ReadWord.getWordStr(ReadWord.java:38)
at com.searchforyou.read.ReadWord.main(ReadWord.java:24)
[color=darkred]
但是再新建一个项目,同一段代码就可以很好的执行。[/color]
[color=red]代码如下[/color]package com.searchforyou.read;
import java.net.HttpURLConnection;
import java.net.URL;
import org.textmining.text.extraction.WordExtractor;
public class ReadWord {
public ReadWord() {
}
public static void main(String args[]) throws Exception
{
String url="http://127.0.0.1:8080/WebContent/aa.doc";
String s="";
s=ReadWord.getWordStr(url);
System.out.println(s);
}
public static String getWordStr(String filename) throws Exception{
URL url = new URL(filename);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
WordExtractor extractor = new WordExtractor();
String str = extractor.extractText(connection.getInputStream());
return str;
}
}
[b]问题补充:[/b]
我在同个机子的 建一个新的web项目 ,jdk版本是一样的,jar包也都引进,但新的项目只有这一段代码。原来的项目还有struts等。
TextPiece.substring()??
那就是这个类里面的class文件了。怎么去修改呢?
[code="java"]Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -740
at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:881)
at java.lang.StringBuffer.substring(StringBuffer.java:416)
at org.apache.poi.hwpf.model.TextPiece.substring(TextPiece.java:87) [/code]
看提示, 应该是说TextPiece.substring()的时候出的错,
[code="java"] public String substring(int start, int end) {
if (start < 0) // start 比0小
throw new StringIndexOutOfBoundsException(start);
if (end > count) // end比总长大
throw new StringIndexOutOfBoundsException(end);
if (start > end) // start比end大
throw new StringIndexOutOfBoundsException(end - start);
return new String(value, start, end - start);
}[/code]
[quote]Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -740 [/quote]
抛的异常是-740, 所以,
1. 要么是start比0小, start的值是-740.
2. 要么是end-start = -740.
还是要具体debug你自己的代码才行.
同一段代码 不同项目出现问题 楼主没有说清楚吧,你的意思,在别的项目中会出现问题,也许可能是你的JDK版本选错了,jDK5 jdk6 编译出来的程序是有一点点问题的.楼主这是你要表达的意思吗,mport org.textmining.text.extraction.WordExtractor;这个JAR你导入了吗,?