java - 我收到 "java.lang.StringIndexOutOfBoundsException: String index out of range: -3 "

标签 java string exception

SentiWord 方法采用字符串参数并使用标记器方法将单词标记为动词或名词......等当我运行此代码时,我得到“java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-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);

但异常似乎没有发生。请帮忙。

最佳答案

显然 words[i]taggedWords[i] 长 尝试打印它们以进行调试,我打赌这就是您会看到的内容。

关于java - 我收到 "java.lang.StringIndexOutOfBoundsException: String index out of range: -3 ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686383/

相关文章:

java - 改进mysql JDBC插入调用

JavaScript 搜索字符串错误

c++ - 如何用双C++替换字符串的一部分

java - 我应该声明一个未经检查的异常吗?

WPF DataGrid ItemsSource 绑定(bind)问题

java - Neo4j Server 无法启动嵌入式数据库

java - 将 Object 转换为 ArrayList<String[]> 时为 "Warning: [unchecked] unchecked cast"

c++ - 为什么 std::make_move_iterator 适用于 vector<string> 但不适用于 vector<int>

java - Java中如何处理异常而不必回到try block 的开头?

java - 这是最小化绑定(bind)失效的有效方法吗?