在java中出现像“String index out of range”这样的错误的原因是什么?

时间:2016-12-07 18:43:01

标签: java

这是我的代码。

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {

        Scanner scan=new Scanner(System.in);

        String s;


        int i;
        int f=1,c,t=scan.nextInt();


        for(int j=0;j<t;j++)
            {

            s=scan.nextLine();
            scan.close();
            c=s.charAt(0)-s.charAt(1);
            for(i=2;i<s.length()-1;i=i+2)//HERE loop is upto second last element
                {
                if(s.charAt(i)-s.charAt(i+1)!=c && s.charAt(i+1)- s.charAt(i)!=c)
                    {
                    f=0;
                    break;
                }
            }

            if(f==1)
                System.out.print("Funny");
            else
                System.out.print("Not Funny");
        }
    }
}

错误

  

线程“main”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0       at java.lang.String.charAt(String.java:658)       在Solution.main(Solution.java:22)

我试图在网上搜索,但我没有得到答案。

1 个答案:

答案 0 :(得分:1)

错误消息告诉您问题所在。这是

的原因
  

java中的“String index out of range”之类的错误

错误消息告诉您第22行发生异常,即c=s.charAt(0)-s.charAt(1);

因为它而超出界限 String index out of range: 0,这意味着当你调用s.charAt(0)时,s的长度为0,这意味着s可能是一个空字符串。