Java之数组篇

动手动脑,第六次Tutorial——数组

这次的Tutorial讲解了Java中如何进行数组操作,包括数组声明创建使用和赋值运算,写这篇文章的目的就是通过实际运用已达到对数组使用的更加熟练,下面是实践代码之后的感悟与总结:

动手动脑1:PassArray.java

 PassArray.java

观察并分析程序的输出结果:

可以得出如下结论:

  • 按引用传递与按值传送数组类型方法参数的最大关键在于:
    • 使用前者时,如果方法中有代码更改了数组元素的值,实际上是直接修改了原始的数组元素。
    • 使用后者则没有这个问题,方法体中修改的仅是原始数组元素的一个拷贝。

动手动脑2:QiPan.java

 QiPan.java

程序运行输出结果:

 

棋盘是如何表示的?

整个棋盘是用一个个“+”组成的,共15行15列,所以可以使用一个15X15的二维数组表示,用户下棋的位置用行列位置表示,这样用户下棋的位置所对应的数组元素将由“+”变为“·”。棋盘类结构如下:

1. 私有静态变量BOARD_SIZE,初始值为15;

2. 私有变量二维字符串数组board[][];

3. 共有方法InitBoard(),初始化棋盘;

4. 共有方法PrintBoard(),打印棋盘;

动手动脑3:IntToChinese.java

问题描述:

请编写一个程序将一个整数转换为汉字读法字符串。比如“1123”转换为“一千一百二十三”。

设计思想:

假如说这个整数最高位数不超过9位,那么问题其实并不是很复杂。实现这个功能的方法可以这么定义:

  1. 定义一个大小为10的字符串型数组chineseNumber,初值为:"零","一","二","三","四","五","六","七","八","九";
  2. 定义一个大小为5的字符串型数组chinesePost,初值为:"","十","百","千","万";
  3. 对函数获取的参数num,进行拆解分析位数以及每位上的数字,num如果是String类型的可能会方便一些,结合上面两个数组进行转化汉字即可;

源代码:

 IntToChinese.java

运行结果:

 

拓展程序:

更进一步,能否将数字表示的金额改为“汉字表达? 比如将“¥123.52”转换为“壹佰贰拾叁元伍角贰分”。

实现代码:

 String ToBigLetter(double money)

结果截图:

设计思想:

只需将小数点前面与后面分开,然后分别拆分即可,所用到的方法有:

  String.subString();

  String.indexOf();

具体思想可根据代码中注释加深理解。

动手动脑4:BigNumber.java

问题描述:

利用数组实现大数相加减。

设计思想:

一个数组元素存取一位数字,无论加法还是减法,都是从低位开始运算,即数组的最后一个元素开始运算,加法满10进1,每个数组元素的最高值为9,相加的和a超过9就让前一个数组+a/10,新的元素值就是a%10,如:

 源代码:

 BigNumber.java

运行结果:

 

原文地址:https://www.cnblogs.com/xieweikai/p/6817736.html