【问题标题】:Fixing IndexOutOfBounds Exception in ArrayList修复 ArrayList 中的 IndexOutOfBounds 异常
【发布时间】:2019-03-31 18:14:40
【问题描述】:

我正在尝试创建一个 String ArrayList 来存储一个句子中的所有单词。目前,我正试图通过查找空间的索引并将其存储在数组中来实现这一点。空格的数组列表有效,但是单词的数组列表无效。字符串数组列表的值是两个空格索引之间的子字符串。请帮忙。

for(int x = 0; x < spaces.size(); x++) {
    words.add(post.substring(spaces.get(x) + 1, spaces.get(x + 1)));
}

【问题讨论】:

    标签: java arraylist substring indexoutofboundsexception


    【解决方案1】:

    有一种更简单的方法可以做到这一点。

    假设您有以下带有单词的字符串:

    stringWithWords = "This is my string";
    

    首先你可以将字符串拆分成一个单词数组:

    String wordsArray[] = stringWithWords(" ");
    

    之后,您可以将数组转换为 ArrayList:

    List<String> wordsArrayList = new ArrayList<String>();
    wordsArrayList = Arrays.asList(wordsArray);
    

    【讨论】:

      【解决方案2】:

      xsize()-1 时,您将调用x+1,这将等于size(),这不是一个有效的索引

      由于您正在查看一个索引,因此仅循环直到小于size()-1

      for(int x = 0; x < spaces.size()-1; x++) {
          words.add(post.substring(spaces.get(x) + 1, spaces.get(x + 1)));
      }
      

      【讨论】:

        猜你喜欢
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多