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 ステートメントをスキップして続行する必要があります。右?