zoukankan      html  css  js  c++  java
  • 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

    运行结果:

     

  • 相关阅读:
    获得随机N位数不重复数字
    springboot配置swagger
    Java开发中的23种设计模式详解(转)
    英文对应解释
    python实现ping命令语音播报联通性V1.0.0.1
    python实现ping命令语音播报联通性V1.0
    python实现ping命令语音播报联通性
    eclipse更新支持tomcat-8.0以上
    网管---------Windows杀死后台进程查询等脚本
    网管-windows磁盘检查修复
  • 原文地址:https://www.cnblogs.com/xieweikai/p/6817736.html
Copyright © 2011-2022 走看看