Имам скенер, който чете буквено-цифров код от 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 и да продължи. нали?