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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class test {
  2.         public static String[] chineseDigits = new String[] { "零", "壹", "贰", "叁",
  3.                 "肆", "伍", "陆", "柒", "捌", "玖" };
  4. public static String[] column = new String[]{"万","亿","兆"};
  5. public static void main(String[] args) {
  6.         int[] row = new int[]{1,2,3,1};
  7.         for (int i = 0; i < row.length; i++) {
  8.                
  9.                         String finalValues = chineseDigits[row[i]]+column[i];
  10.                
  11.                 System.out.println(finalValues);
  12.         }
  13. }
复制代码
总是爆String finalValues = chineseDigits[row]+column;这一行数组下标越界,跪求帮助{:soso__1620823281082563426_2:}

点评

row的长度是4,colum长度是3,i=3就已经越界了  发表于 2012-11-20 21:22

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
public static String[] column = new String[] { "万", "亿", "兆"};不够的,越界是在这里
回复 使用道具 举报
  1. public class test
  2. {
  3.         public static String[] chineseDigits = new String[]
  4.                         { "零", "壹", "贰", "叁",
  5.                 "肆", "伍", "陆", "柒", "捌", "玖" };
  6.      public static String[] column = new String[]{"万","亿","兆"};
  7.    public static void main(String[] args)
  8.         {
  9.         int[] row = new int[]{1,2,3,1};
  10.         for (int i = 0; i < row.length; i++)
  11.                 {
  12.                         String finalValues = chineseDigits[row]+column;//这个地方会出错,column[]的长度为3,而row[]的长度为4,也就是i最大可以到3,但是column[]的脚标最大只能到2,所以提示脚标越界异常。
  13.             System.out.println(finalValues);
  14.         }
  15. }
  16. }
复制代码
column[]的长度为3,而row[]的长度为4,也就是i最大可以到3,但是column[]的脚标最大只能到2,所以提示脚标越界异常。
回复 使用道具 举报
原来如此,糊涂了.....
回复 使用道具 举报
我也试过写这个小程序,但是发现可能需要定义的char[]数组不止那么些, 还有 {'拾','佰','仟'},而且还得考虑一个问题。就是组合的问题,这其中的排列组合比较多,还有就是一些特殊情况,最后或者最后几位都为0的情况。那么就不需要输出那么多了。自认自己数学底子都还给老师了,所以就没做了,建议LZ把这些排列组合都看看再写可能思路会清晰很多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马