Ваша проблема была заявлена многими людьми, но я постараюсь улучшить ваш блок кода в целом.
Ваша проблема - блок:
a = input1.charAt(0);
b = input1.charAt(1);
d = input1.charAt(3);
e = input1.charAt(4);
Допустим, ваш ввод "1234"следующий массив будет существовать
array [" 1 "," 2 "," 3 "," 4] Массивы в Java, и большинство языков начинаются с 0. Таким образом, ваши доступные позиции - 0, 1, 2 и3. Когда input1.charAt (4); запускается, происходит сбой.
Extra Sugestions
Но давайте попробуем немного сделать весь ваш кодлучше.
Во-первых, предполагая, что это весь ваш код, строка
number = Integer.parseInt(input1);
бесполезна, поскольку вам никогда не нужно это значение, давайте выбросим его. Если вы сохраните его, вам понадобитсяпопробуйте ... перехватить блок в случае, если input1 не является числом, "abcde" приведет к аварийному завершению работы вашего приложения.
Далее блок, в котором вы проверяете длину, может быть упрощен и должен появиться до того, как вы попытаетесь что-либо прочитать..
if (number2 >= 6) {
JOptionPane.showMessageDialog(null, "Not a 5 digit number");
}
if (number2 <= 4) {
JOptionPane.showMessageDialog(null, "Not a 5 digit number");
}
можно просто превратить в один, если с помощью оператора || (Или) или даже лучше, чем! = (НЕТT), вместо того, чтобы проверять, меньше ли его четыре или больше 6, проверьте, не является ли его 5. 5. 1026 *
if (number2 != 5) {
JOptionPane.showMessageDialog(null, "Not a 5 digit number");
}
И у вас есть какой-то лучший код, который не должен давать сбой!
String input1;
int number2, a, b, d, e;
input1 = JOptionPane.showInputDialog("Enter 5 digit number");
number2 = input1.length();
if (number2 != 5) {
JOptionPane.showMessageDialog(null, "Not a 5 digit number");
return; //Dont do anything else, or you will get errors.
}
//There are better ways to do this, but this should work.
a = input1.charAt(0);
b = input1.charAt(1);
d = input1.charAt(3);
e = input1.charAt(4);
if ((a == e) && (b == d)) {
JOptionPane.showMessageDialog(null, "Palindrome");
} else {
JOptionPane.showMessageDialog(null, "Not a palindrome");
}
Извините за многословие, но я надеюсь, что это помогло.