You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现带删除功能的A-Z卡牌游戏,无法输出预期结果如何解决?

A-Z卡牌游戏Java代码问题排查与修复

原代码核心错误点

  • 数组使用逻辑混乱:最初定义的string数组被同时用来存储用户输入记录、卡牌计数数据,拆分当前输入行时错误读取数组前两个元素string[0]、string[1],而非拆分后的splitString数组的内容,直接导致第一次循环就触发逻辑异常/数组越界,程序无法正常读取后续输入
  • 缺少独立的统计容器:A-Z共26个字母的计数需要单独的int类型数组存储,不能和字符串类型的输入记录数组混用
  • 输出逻辑错误:增强for循环中未定义变量i,且输出格式不符合需求,缺少「先打印全部输入记录」的逻辑
  • 输入提示不符合要求:初始提示文本错误,应先引导用户输入待游玩的卡牌总数

修复后完整代码

import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;

public class CardGame {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 读取待游玩卡牌总数
        System.out.print("Cards to play: ");
        int total = sc.nextInt();
        sc.nextLine(); // 处理换行符残留

        String[] inputRecords = new String[total]; // 专门存储所有输入记录
        int[] countArr = new int[26]; // 存储A-Z对应卡牌数量,索引0对应A,1对应B以此类推

        for (int i = 0; i < total; i++) {
            // 读取每行输入并存入记录数组
            inputRecords[i] = sc.nextLine().trim();
            // 拆分当前行内容
            String[] splitStr = inputRecords[i].split(" ");
            // 转换数值和字母
            int num = Integer.parseInt(splitStr[0]);
            char letter = splitStr[1].charAt(0);
            int index = letter - 'A';
            // 更新计数
            countArr[index] += num;
        }

        // 第一步:打印所有输入记录
        for (String record : inputRecords) {
            System.out.println(record);
        }

        // 第二步:统计剩余卡牌,收集数量大于0的项
        System.out.println("\ncards left: ");
        List<String> leftCards = new ArrayList<>();
        for (int i = 0; i < 26; i++) {
            if (countArr[i] > 0) {
                leftCards.add(countArr[i] + " " + (char)('A' + i));
            }
        }
        // 按要求用 -> 拼接输出
        System.out.println(String.join(" -> ", leftCards));
        
        sc.close();
    }
}

运行验证

输入示例给出的测试用例,输出和需求完全一致:

Cards to play: 5
1 A
2 B
3 C
1 A
-3 C
1 A
2 B
3 C
1 A
-3 C

cards left: 
2 A -> 2 B

内容的提问来源于stack exchange,提问作者JavaCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:45:00