Задача Seats - For Loop.
Здравейте, реших задачата по няколко начина, но всеки път достигам до 75/100 и не мога да разбера защо. Може ли вякой да погледне и да ми каже къде греша, много благодаря. :)
Условие:
Деси е купила няколко билета за концерт, на които обаче не са споменати местата в залата, за които са закупени. Тя вижда зависимост между различния формат на билетните номера. Местата, на които отговарят билетите се образуват според следните правила и формат:
- Номер с 4 символа
- Ако първия символ е главна буква от латинската азбука:
{първи символ} {втори символ} {трети символ}
- Ако първия символ не е главна буква от латинската азбука:
{четвърти символ} {втори символ} {трети символ}
- Номер с 5 или 6 символа – {първи символ} {ASCII стойността на втория символ}
Напишете програма, която да помогне на Деси да разшифрова билетните номера.
Вход
- Първи ред – брой билети, които Деси е закупила – цяло число в интервала от [2… 100]
- За всеки билет чете билетния номер – текст
Изход
Да се отпечата разшифрования номер на място за всеки билет във формат:
"Seat decoded: {номера}"
Код:
package seats;
import java.util.Scanner;
public class Seats {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
int ticketCounter = Integer.parseInt(scanner.nextLine());
for (int i = 0; i < ticketCounter; i++) {
String ticketNumber = scanner.nextLine();
char firstCharacter = ticketNumber.charAt(0);
char secondCharacter = ticketNumber.charAt(1);
char thirdCharacter = ticketNumber.charAt(2);
char fourthCharacter = ticketNumber.charAt(3);
if (ticketNumber.length() == 4) {
if (Character.isUpperCase(ticketNumber.charAt(0))) {
System.out.printf("Seat decoded: %s%s%s%n", firstCharacter, secondCharacter,
thirdCharacter);
} else if (Character.isDigit(ticketNumber.charAt(0))) {
System.out.printf("Seat decoded: %s%s%s%n", fourthCharacter, secondCharacter,
thirdCharacter);
}
} else if (ticketNumber.length() == 5 || ticketNumber.length() == 6) {
char asciiCharacter = secondCharacter;
int ascii = (int) asciiCharacter;
System.out.printf("Seat decoded: %s%s%n", firstCharacter, ascii);
}
}
}
}