我收到“java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-3”

时间:2016-04-18 05:54:20

标签: java string exception

SentiWord方法接受String参数并使用tagger方法将单词标记为动词或名词等。当我运行此代码时,我得到“java.lang.StringIndexOutOfBoundsException:String index out of range:-3”。我知道有类似的问题,但是我无法应用它们来摆脱异常。

public static String SentiWord(String stri) {
       MaxentTagger tagger = new MaxentTagger("taggers/english-left3words-distsim.tagger");
           String sample=stri;
            sample = sample.replaceAll("([^a-zA-Z\\s])", "");
            String[] words = sample.split("\\s+");
           String taggedSample = tagger.tagString(sample);
            String[] taggedWords = taggedSample.split("\\s+");
           double totalScore = 0;
            SWN3 test = new SWN3();
            for (int i=0; i<taggedWords.length;i++) {   
               String tail = taggedWords[i].substring(words[i].length() + 1);
                ....
                ...
                }

我在尝试什么:

if (words[i].length()>0)   // This line
             tail = taggedWords[i].substring(words[i].length() + 1);

但似乎没有例外。请帮助。

1 个答案:

答案 0 :(得分:1)

显然words[i]长于taggedWords[i] 尝试将它们打印出来用于调试目的,我敢打赌这就是你所看到的。