さて、ここに私のコードがあります:
import java.util.Scanner;
public class CarRental {
public static String model;
public static int letternum;
public static String plate;
public static String letter;
public static int total;
public static String alphabet = "abcdefghijklmnopqrstuvwxyz";
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//System.out.println("Car Model:");
//model = input.nextLine();
System.out.println("License Plate: ");
plate = input.nextLine();
char one = plate.charAt(0);
char two = plate.charAt(1);
char three = plate.charAt(2);
total = one + two + three;
letternum = total % 24;
char letter = alphabet.charAt(letternum);
System.out.println("" + letter + total);
}
}
何が起こっているのかというと、ナンバー プレートの入力を取り、0、1、2 の場所にある文字を取得しようとしています。ナンバー プレートでは 3 文字になります。次に、それらの ASCII 値を取得し、それらをすべて加算して、int の「合計」に設定しようとしています。次に、合計値の前にあるはずの文字を見つけるために、% 6 を使用して合計の残りを見つけます。次に、その値を取得し、それが 4 であるとします。文字列 "alphabet" の 4 番目の文字を char "letter" に設定します。次に、ASCII 値の合計に続いて文字を出力する必要があります。
これは、予想される結果を含む私の入力の例であり、その後に実際の結果が続きます。
ナンバー プレート: CPR 607
出力: E836
まったく同じナンバープレートを使用した私の出力は次のとおりです。
ナンバー プレート: CPR 607
n229
何が間違っているのかわかりませんが、私の最良の手がかりは、それが文字であるという事実であり、文字列値ではなくASCII値のように扱っているということです(実際に取得しようとしています)
誰かがいくつかのヒントを提案できれば、それは大きな助けになるでしょう. 必ずしもコードからリーチできるわけではありませんが、これを正しい方法で行うにはどうすればよいでしょうか。