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

Java实现getTotalAmount()统计钱包指定货币总额方法求助

问题修复说明

你现有代码存在4个核心问题:

  • 方法返回值类型错误:总金额为整数类型,原代码定义返回String,应改为int
  • 字符串比较逻辑错误:Java中字符串内容比较不能用==(该操作符仅比较对象内存地址),必须使用equals()方法
  • 金额计算逻辑错误:原代码无论币种是否匹配,都直接将当前条目金额赋值给结果变量,既没有做币种过滤,也没有做累加操作
  • 未按要求使用break、continue流程控制语句
正确实现代码
package com.arrays.problem6;

public class Currency {
    public static void main(String[] args){
        // 测试用例可直接在此调用验证
        String[] money1 = {"eur 10", "usd 1", "usd 10", "rub 50", "usd 5"};
        System.out.println(getTotalAmount(money1, "usd")); // 输出16

        String[] money2 = {"eur 10", "usd 1", "eur 5", "rub 100", "eur 20", "eur 100", "rub 200"};
        System.out.println(getTotalAmount(money2, "eur")); // 输出135

        String[] money3 = {"eur 10", "rub 50", "eur 5", "rub 10", "rub 10", "eur 100", "rub 200"};
        System.out.println(getTotalAmount(money3, "rub")); // 输出270
    }

    public static int getTotalAmount(String[] money, String currency){
        int result = 0;
        // 基础参数合法性校验
        if (money == null || currency == null || currency.length() != 3) {
            return result;
        }
        for(String item: money){
            // 遇到空元素直接终止整个循环,通过break满足流程控制要求
            if (item == null) {
                break;
            }
            // 截取当前条目前3位得到对应币种
            String currentCurrency = item.substring(0, 3);
            // 币种不匹配直接跳过当前循环后续逻辑,通过continue满足流程控制要求
            if (!currency.equals(currentCurrency)) {
                continue;
            }
            // 币种匹配时,截取索引4之后的金额部分(索引3为币种和金额间的空格)转整数累加
            int amount = Integer.parseInt(item.substring(4));
            result += amount;
        }
        return result;
    }
}
逻辑说明
  • 方法入口先做参数合法性校验,传入空数组、空目标货币、目标货币长度不符合3位要求时直接返回0
  • 遍历资金数组时,遇到空元素直接用break终止整个遍历,避免后续空指针异常
  • 每个条目先截取前3位和目标货币比对,不匹配则用continue跳过当前条目的金额计算逻辑,直接进入下一轮循环
  • 币种匹配时,直接从索引4位开始截取到字符串末尾得到金额值,转成整数后累加到总结果中
  • 所有条目遍历完成后返回累加的总金额,完全匹配给出的所有测试用例预期结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:01:47