#java #iteration
Вопрос:
Меня просят написать программу для карточных игр от А до Я, которая печатает желаемое количество вводимых данных, которое может потребоваться пользователю. Программе необходимо удалить, например, карты: 1 A -gt; 2 B -gt;gt; 3 C. если пользователь вводит -3 C, что означает удаление 3 C, программе необходимо вывести 2 A -gt;gt;gt; 2 B.
SAMPLE INPUT Cards to play: 5 1 A 2 B 3 C 1 A -3 C Output 1 A 2 B 3 C 1 A -3 C cards left: 2 A -gt; 2 B
это то, что я делал до сих пор:
Scanner sc = new Scanner(System.in); System.out.print("Input card: "); String[] string = new String [sc.nextInt()]; sc.nextLine(); for (int i = 0; i lt; string.length; i ) { string[i] = sc.nextLine(); String[] splitString = string[i].split(" "); String part1 = string[0]; String part2 = string[1]; int X = Integer.parseInt(part1); char y = part2.charAt(0); int Y = y - 'A'; string[Y] = X; } System.out.println("Cards left: "); for(String str: string) { System.out.println(str " " i 'A'); }
Я думаю, что мне нужно получить значение индекса 0, чтобы это было преобразование (строка в int, строка в символ в int) (которое, я думаю, также не работает). и кажется, что он может считывать только 1 вход, и я, похоже, не могу распечатать желаемый вывод, который я хочу. Очень нужна помощь
Комментарии:
1. выход должен быть 1A-gt;2B или 2A-gt;gt;2B ??
2. 2 A -gt; 2B, потому что те же карты должны быть добавлены, если пользователь не хочет их удалять
Ответ №1:
Мне кажется, что вы путаетесь между разными объектами.
Вы должны сделать :
String[] splitString = string[i].split(" "); String part1 = splitString[0]; String part2 = splitString[1];
Профессиональные советы : Используйте имена переменных, которые что-то значат, чтобы предотвратить подобные ошибки в будущем.