Hello. I don't understand where I'm wrong. Can somebody help me please?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
class Main {
public static String nextPalindrome(String s){
int length = s.length();
String str;
if(length % 2 == 1)
str = s.substring(0, length/2 + 1);
else
str = s.substring(0, length/2);
str += new StringBuffer(s.substring(0, length/2)).reverse().toString();
if(str.compareTo(s) <= 0)
{
if(length % 2 == 1)
str = s.substring(0, length/2 + 1);
else
str = s.substring(0, length/2);
char []arrStr = str.toCharArray();
int last = 0;
int i;
for (i = arrStr.length - 1; i >= 0; i--){
last = Character.getNumericValue(arrStr[i]);
last++;
if (last < 10) {
arrStr[i] = Character.forDigit(last, 10);
break;
}
else{
arrStr[i] = '0';
}
}
str = new String(arrStr);
if (i < 0 && last == 10){
StringBuffer buf = new StringBuffer(str);
buf.insert(0, '1');
str = buf.toString();
}
str += new StringBuffer(str.substring(0, length/2)).reverse().toString();
}
return str;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
int t = Integer.parseInt(br.readLine());
ArrayList<String> arrayK = new ArrayList<String>();
int counter = 0;
while (counter != t) {
String str = br.readLine();
if (str.length() <= 1000000) {
char[] strChar = str.toCharArray();
int i;
for (i = 0; i < strChar.length; i++){
if (strChar[i] != '0'){
break;
}
}
str = str.substring(i, str.length());
arrayK.add(str);
counter++;
}
}
System.out.println();
for (int i = 0; i < t; i++)
System.out.println(nextPalindrome(arrayK.get(i)));
} catch (Exception e) {
return;
}
}
}