У меня есть сканер, который считывает 7-символьный буквенно-цифровой код (вводится пользователем). переменная String называется «код».
Последний символ кода (7-й символ, 6-й индекс) ДОЛЖЕН БЫТЬ ЦИФРОВЫМ, а остальные могут быть как цифровыми, так и буквенными.
Итак, я стремился сделать улов, который останавливал бы выполнение остальной части метода, если бы последний символ в коде был чем угодно, кроме числа (от 0 до 9).
Однако мой код работает не так, как ожидалось, поскольку даже если мой код заканчивается целым числом от 0 до 9, оператор if будет выполнен и выведет «последний символ в коде не является числом).
пример кода: 45m4av7
CharacterAtEnd распечатывается как строковый символ 7, как и должно быть. однако моя программа по-прежнему говорит мне, что мой код заканчивается нечислово. Я знаю, что мои числовые значения являются строковыми символами, но это не должно иметь значения, не так ли? также я, по-видимому, не могу сравнивать фактические целые значения с «|», поэтому я использую String.valueOf и беру строковые символы 0-9.
String characterAtEnd = String.valueOf(code.charAt(code.length()-1));
System.out.println(characterAtEnd);
if(!characterAtEnd.equals(String.valueOf(0|1|2|3|4|5|6|7|8|9))){
System.out.println("INVALID CRC CODE: last character in code in non-numerical.");
System.exit(0);
Я не могу в жизни понять, почему моя программа говорит мне, что мой код (с цифрой 7 в конце) заканчивается нечислово. Он должен пропустить оператор if и продолжить. правильно?