阅读背景:

字符串子字符串(i,j)抛出IndexOutOfBounds方法()中的异常但不在main()中抛出

来源:互联网 
public class Longest
{
    public static void main(String[] args)
    {
        String tc = "babad";
        StringBuffer sb = new StringBuffer(tc.substring(0,tc.length()));
        System.out.println(sb.toString().equals(sb.reverse().toString())); 
        //no exception

        System.out.println(longestPalindrome(tc)); // throw exception
    }
    public String longestPalindrome(String s) {
        if(s.length()<2)
            return s;
        int max = 0;
        int beg = 0;
        for(int i =0;i<s.length();i++)
        {
            for(int j = s.length();j>=0;j--)
            {
                if(isPalindrome(s,i,j) && j-i>max)
                {
                    max = Math.max(j-i, max);
                    beg = i;
                }
                if(max == s.length())
                    return s;
            }
        }
        return s.substring(beg, beg+max);
    }

    private static boolean isPalindrome(String s,int left, int right)
    {
        StringBuffer sb = new StringBuffer(s.substring(left, right));
        return sb.toString().equals(sb.reverse().toString());
    }
}
public class Longest
{
    public static void m



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: