蓝桥杯第十一届省赛回文日期, 拿不了满分请大家给我讲讲

package Lan;
import java.util.;
public class Main {
/

*/

public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      int num = in.nextInt();
      int max = 99999999;
      for(int i = num+1;i<=max;i++) {
           String s=nextHuiWen(i);
            if(s != null) {
                System.out.println(s);
                break;
            } 
      }
      
      for(int i = num+1;i<=max;i++) {
           String s = nextXing(i);
           if(s != null) {
               System.out.println(s);
               break;
           }
    }
      
}

static String nextHuiWen(int i) {
    String str = i+"";
    //长度为8 必然为偶长度
    for(int j = 0;j<str.length()/2;j++) {
        if(str.charAt(str.length()-1-j) != str.charAt(j)) {
            return null;
        }
    }
    return str;
}

static String nextXing(int i) {
     String str = i+"";
     char A = str.charAt(0);
     char B = str.charAt(1);
     if(A == str.charAt(2) && B == str.charAt(3)
        && B == str.charAt(4) && A == str.charAt(5)
        && B == str.charAt(6) && A == str.charAt(7)) {
         return str;
     }
     return null;
}

}

str一定有8位吗?
第三行生成num,然后调用方法nextXing,如果没有8位,str.charAt(7)就越界了。


static String nextXing(int i) {
     String str = i+"";
     char A = str.charAt(0);
     char B = str.charAt(1);
     if(A == str.charAt(2) && B == str.charAt(3)
        && B == str.charAt(4) && A == str.charAt(5)
        && B == str.charAt(6) && A == str.charAt(7)) {
         return str;
     }
     return null;
}