当前位置: 首页 > 知识库问答 >
问题:

线程“main”java.lang.IndexOutOfBoundsException异常:索引:20,大小:20

段哲圣
2023-03-14

我正在尝试编写一个lz78代码作为一个学校项目,但我不断得到这个错误:

线程“main”java.lang.IndexOutOfBoundsException异常:索引:20,大小:20

代码如下:

public class LZ88 {
    ArrayList input = new ArrayList();
    ArrayList stored = new ArrayList();
    Iterator counter = input.iterator();
    int count=0;
    int lz78(String x)
    {
        int length=x.length();
        for(int i=0;i<x.length();i++)
        {
            input.add(x.charAt(i));
        }
        for(int i=0;i<=input.size(); i++)
        {
            if(stored.contains(input.get(i))==true)
            {
                String str ;
                StringBuilder sb = new StringBuilder();
                sb.append(input.get(i));
                sb.append(input.get(++i));
                str=sb.toString();
                while(stored.contains(str)==true)
                {
                    sb.append(input.get(++i));
                    str=sb.toString();

                }
                stored.add(str);
                System.out.println(stored);
            }
            else
            {
                stored.add(x.charAt(i));
                System.out.println(stored);
            }
        }
        return 0;
    }
    public static void main(String[] args) {
        String x ="abaababaababbbbbbbba";
        LZ88 ob = new LZ88();
        ob.lz78(x);
    }

}

共有1个答案

夏弘文
2023-03-14

将(int i=0;i<=input.size();i++)的替换为(int i=0;i

 类似资料: