A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莫忘本心 中级黑马   /  2014-7-30 01:03  /  806 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在“做从键盘接受一个数字,打印该数字表示的时间,最大单位到天”这个题目。 然后写的代码 如下,写完是没有红XX的 运行就会出错,求大神说下哪里有问题。
package com.itheima;

import com.itheima.util.Tool;//工具类 用于键盘输入

public class Demo2 {
public static final String[] TIME=new String[]{"天","时","分","秒"};
public static final int[] TIME_GET=new int[]{24*60*60,60*60,60};
        /**
         * @param args
         */
        public static void main(String[] args) {
                String str=Tool.readFrom("请输入你要打印的数字");
                System.out.println(Time(Integer.parseInt(str)));
        }
                // TODO Auto-generated method stub

       
        public static String Time(int num){
                String str="";
                for(int i=0;i<TIME.length;i++){
                        int t=num/TIME_GET[i];
                        str+=t+TIME[i];
                        num=num%TIME_GET[i];       
                }

            str+=num+TIME[TIME_GET.length];
            return str;
            
}
}

2 个回复

倒序浏览
这个小程序居然弄了个工具类。。。好吧,你的TIME_GET数组没有TIME数组长,循环的时候又以TIME数组的长度为准,导致访问TIME_GET数组时下标越界
回复 使用道具 举报
fantacyleo 发表于 2014-7-30 01:10
这个小程序居然弄了个工具类。。。好吧,你的TIME_GET数组没有TIME数组长,循环的时候又以TIME数组的长度为 ...

谢了 开始大意了没注意循环应该是TIME_GET的  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马