如何用二维数组绘制五子棋盘

在定义一个棋盘类,声明一个二维字符数组,为每一个数组元素赋值为“+”,打印输出就是一个简单地棋盘,如下图:

然后定义BufferedReader的实例对象br,可以从平面读入一个字符串,用户输入的坐标当以“,”隔开,所以这个字符串可以用String类的split()函数分割为两个字符串,这里一“,”分割便可。然后分别将左边和右边的字符转化为数字,将对应的小标的字符数组的元素赋值为“●”,继续打印输出二维数组,就可以实现下棋。

编写程序将整数转化为汉字读法

第一步需要定义两个字符串数组,一个表示单位的数组unit[]存储单位“个”“十”“百”“千”“万”等,由于“个”我们通常不用读出来,所以可以用空字符代替。另一个字符串数字存储0-9的汉字。然后我们需要将一个整数的每一位上的数字分隔开来,如果是整型的变量,可以用求余的方法取出每一位上的数字,代码如下:

number //待分割的数字

int array[] = new int[20]

do{

array[i] = number%10;

number/=10;

}while(number>0);

如果是字符串变量可以直接调用charAt()方法取出字符串中的字符,然后取出的字符减区字符0(‘0’表示字符0)等到该字符所代表的数字。然后根据数值取出对应汉字,根据位数取出单位,数值汉字与单位组合成一个新的字符串,然后将每一个字符串连接起来就是整数的汉字读法。具体还有很多细节问题需要处理,比如遇到零的时候,多个零只读一个零;还有万位以后的单位等等。核心代码代码如下:



测试结果为:

对于生活中的钱的读法,我们通常只会读出两位小数,所以将整数部分读出加上单位元,然后加上小时部分的内容就可以了,十分位上的数字加上单位角,百分位上的数字加上单位分,百分位是零不读,十分是零也不读。代码如下:

测试结果:

大数运算

java语言中的数据类型都是有取值范围的,如果超出这个范围,将不再适用。所以需要我们自己定义大数字类型。一种方法是可以用数组来储存大数字,数组元素的下标对应于该元素数值的单位。数组是不能直接进行运算的,所以我们需要自己写运算过程。在加减运算中,只需要对每一个元素的相邻的两个元素有操作,其他元素没有影响。

加法部分代码如下:

随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中。

  • 程序设计思想:在文件头中导入javax.swing.JOptionPane类。在main方法中声明一个整型的数组,用循环语句调用Math类的函数random()为每一个元素随机生成一个值,并将每一个元素的值链接称为一个字符串。调用JoptionPane类的静态函数showMessageDialog()显示字符串。然后用循环算出数组的每一个元素相加的值,继续用showMessageDialog()函数显示结果。
  • 程序流程图:

  • 程序源代码:

import javax.swing.JOptionPane;

public class ArrayAdd {

public static void main(String[] args) {

// TODO Auto-generated method stub

int array[] = new int[10];

int sum = 0;

String input = "";

String add = "";

for(int i = 0; i < array.length; i++)

{

array[i] = (int)(Math.random() * 100);

sum += array[i];

input += array[i] + " ";

if(i != array.length-1)

add += array[i] + "+";

else

add += array[i];

}

JOptionPane.showMessageDialog(null, input);

JOptionPane.showMessageDialog(null, add + "="+sum);

}

}

结果截图:

  • 编程总结:学习编程需要不断努力探索,总结经验,才能提高编程能力。

TheSeventhWeekJavaText的更多相关文章

随机推荐

  1. Servlet的Request.getInputStream()只能读取一次问题

    Servlet的Request.getInputStream()只能读取一次问题 这个星期公司的项目接口进行改造,公司的接口有的采用了WebService的方式,有的使用的是Http协议+Servle ...

  2. [设计模式-创建型]工厂方法(Factory Method)

    概括 名称 Factory Method 结构 动机 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method 使一个类的实例化延迟到其子类. 适用性 当一个类不知道它所必 ...

  3. DB2使用存储过程插入数据

    要求:插入一张表(TESTMV)中三个字段(ID, GROUPID[组id], USERID[用户id]),为了产生多个组,每个组多个人的数据,进行统计每个组多少人数据用 代码如下: delete t ...

  4. Fragment与Activity交互(使用Bundle)

    将需要传输的数据封装在一个Bundle对象里,然后将该Bundle对象通过 fragment.setArguments()放到fragment内. Bundle arguments = new Bun ...

  5. JS —— 轮播图中的缓动函数的封装

    轮播图的根本其实就是缓动函数的封装,如果说轮播图是一辆跑动的汽车,那么缓动函数就是它的发动机,今天本文章就带大家由简入繁,封装属于自己的缓动函数~~ 我们从需求的角度开始,首先给出一个简单需求: 1. ...

  6. POJ3177 Redundant Paths 双连通分量

    Redundant Paths Description In order to get from one of the F (1 <= F <= 5,000) grazing fields ...

  7. Java文档注释

    文档注释是用于生成API文档,API主要用于说明类.方法.成员变量 javadoc工具 处理文档源文件在类.接口.方法.成员变量.构造器和内部类之前的注释,忽略其他地方的文档注释.而且javadoc工 ...

  8. Linux环境快速部署Zookeeper集群

    一.部署前准备: 1.下载ZooKeeper的安装包: http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper-3.4.9. 2.将下载的 ...

  9. python-微博模拟登陆

    微博的的模拟登陆是比较坑的,看了网上很多大神的帖子,自己又看了微博的登陆时的json数据:1.发现登陆时在输入账号时用chrome可以看到会有一个prelogin之类的网址,网址后面会有大串的随机数. ...

  10. Javascript赋值语句中的“&&”操作符和"||"操作符

    有这么一种常见的语句: var a = a || 4; 那赋值语句中的"&&"操作符和"||"操作符是什么意思?如何知道这两个逻辑操作符两旁的数 ...