mikebag123 2021-05-28 15:29 采纳率: 42.9%
浏览 220
已采纳

Android Studio期末作业小问题求教

这学期Android Studio的作业是自己设计一个记账本

我的想法是将日期、备注、金额分别放在三个ArrayList里面,就比如

Date[2020/4/15,2020/5/19,2020/5/23]

Amount[23,56,79]

Remark[Lunch,Dinner,Ingredients]

这样

 

但是如果我要统计5月一个月总共支出了多少钱(如上则是56+79=135),我要怎么精准地将5月所花的金额提取出来并相加?还是我用动态数组去记帐的想法本身就是错误的?请各位大佬赐教,感激不尽

谢谢

 

  • 写回答

3条回答 默认 最新

  • 陈蒙_ 博客专家认证 2021-05-28 16:21
    关注

    用ArrayList ok的,给出一种候选算法:

        void calculator() {
    
            final int LENGTH = 3;
    
            List<String> date = new ArrayList<>(LENGTH);
            date.add("2020/4/15");
            date.add("2020/5/19");
            date.add("2020/5/19");
    
            List<Integer> amount = new ArrayList<>(LENGTH);
            amount.add(23);
            amount.add(56);
            amount.add(79);
    
            List<String> remark = new ArrayList<>(LENGTH);
            remark.add("Lunch");
            remark.add("Dinner");
            remark.add("Ingredients");
    
            // hitMayIndices 中的元素与 amount 中的元素一一对应,如果属于5月则为1否则为0
            List<Integer> hitMayIndices = new ArrayList<>(LENGTH);
            for (int i = 0; i < LENGTH; i++) {
                final String day = date.get(i);
                hitMayIndices.add(isMayDay(day) ? 1 : 0);
            }
    
            long sum = 0;
            for (int i = 0; i < LENGTH; i++) {
                final int a = amount.get(i);
                sum += a * hitMayIndices.get(i);
            }
    
            Log.d("MayDay", String.format("sum: %d", sum));
        }
    
        static boolean isMayDay(String day) {
            if (TextUtils.isEmpty(day)) {
                return false;
            }
    
            final String month = day.split("/")[1];
            return TextUtils.equals(month, "5") || TextUtils.equals(month, "05");
        }
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 FPGA芯片60进制计数器
  • ¥15 前端js怎么实现word的.doc后缀文件在线预览
  • ¥20 macmin m 4连接iPad
  • ¥15 DBIF_REPO_SQL_ERROR
  • ¥15 根据历年月数据,用Stata预测未来六个月汇率
  • ¥15 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部