Другие указали на проблемы с массивами, но я не понимаю, почему вы вообще используете массивы.Просто используйте substring
:
static int generateFirstPal(int x) {
String y = String.valueOf(x);
String firstPart = y.substring(0, y.length() / 2);
return Integer.parseInt(firstPart);
}
static int generateSecondPal(int x) {
String y = String.valueOf(x);
String secondPart = y.substring(y.length() / 2);
return Integer.parseInt(secondPart);
}
Честно говоря, это все равно странный дизайн ... вы уверены это правильное поведение с самого начала?Учитывая, что вы имеете дело с числами, непонятно, зачем вам вообще нужно строковое представление.В зависимости от ожидаемой длины строк, я бы ожидал что-то вроде этого:
static int generateFirstPal(int x) {
return x / 1000;
}
static int generateSecondPal(int x) {
return x % 1000;
}
Это разделит 123456 на 123 и 456, например.Отрегулируйте 1000 в соответствии с вашими реальными значениями.