Przy użyciu metody charAt nie doda ich jako Int i nie będzie drukować jako ciąg znaków. Wyjaśni lepiej
W porządku, oto mój kod:
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);
}
}
Chodzi o to, że próbuję zmusić mnie do pobrania danych z tablicy rejestracyjnej i zabrania znaków w miejscach 0, 1 i 2. Które z tablic rejestracyjnych byłyby trzema literami. Następnie próbuję pobrać ich wartości ASCII, dodać je wszystkie i ustawić na int „total”. Następnie, aby znaleźć List, który ma znajdować się przed całkowitą wartością, znajduję pozostałą część sumy za pomocą% 6. Wtedy zajmie się tą wartością, a niezależnie od liczby, powiedzmy, że wynosi 4, zajmie czwarta litera w ciągu „alfabet” i ustaw ją na literę „char”. Następnie należy wydrukować literę, a następnie sumy wartości ASCII.
Oto przykład mojego wkładu w oczekiwany wynik, a następnie jego RZECZYWISTY wynik.
Tablica rejestracyjna: CPR 607
Wyjście: E836
Moje dane z dokładnie taką samą tablicą rejestracyjną to:
Tablica rejestracyjna: CPR 607
n229
Nie jestem pewien, co robię źle, ale moją najlepszą wskazówką jest to, że fakt, że jest char, traktuje go jak jego wartość ASCII, a nie jego wartość String (którą próbuję uzyskać)
Gdyby ktoś mógł zasugerować jakieś wskazówki, byłoby to wielką pomocą. Niekoniecznie kod, który mogę po prostu wypuścić, ale jak powinienem postępować w ten sposób!