动手动脑:

import java.io.*;

public class QiPan

{

//定义一个二维数组来充当棋盘

private String[][] board;

//定义棋盘的大小

private static int BOARD_SIZE = 15;

public void initBoard()

{

//初始化棋盘数组

board = new String[BOARD_SIZE][BOARD_SIZE];

//把每个元素赋为"╋",用于在控制台画出棋盘

for (int i = 0 ; i < BOARD_SIZE ; i++)

{

for ( int j = 0 ; j < BOARD_SIZE ; j++)

{

board[i][j] = "╋";

}

}

}

//在控制台输出棋盘的方法

public void printBoard()

{

//打印每个数组元素

for (int i = 0 ; i < BOARD_SIZE ; i++)

{

for ( int j = 0 ; j < BOARD_SIZE ; j++)

{

//打印数组元素后不换行

System.out.print(board[i][j]);

}

//每打印完一行数组元素后输出一个换行符

System.out.print("\n");

}

}

public static void main(String[] args)throws Exception

{

QiPan gb = new QiPan();

gb.initBoard();

gb.printBoard();

//这是用于获取键盘输入的方法

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String inputStr = null;

System.out.println("请输入您下棋的座标,应以x,y的格式:");

//br.readLine():每当在键盘上输入一行内容按回车,刚输入的内容将被br读取到。

while ((inputStr = br.readLine()) != null)

{

//将用户输入的字符串以逗号(,)作为分隔符,分隔成2个字符串

String[] posStrArr = inputStr.split(",");

//将2个字符串转换成用户下棋的座标

int xPos = Integer.parseInt(posStrArr[0]);

int yPos = Integer.parseInt(posStrArr[1]);

//把对应的数组元素赋为"●"。

gb.board[xPos - 1][yPos - 1] = "●";

/*

电脑随机生成2个整数,作为电脑下棋的座标,赋给board数组。

还涉及

1.座标的有效性,只能是数字,不能超出棋盘范围

2.如果下的棋的点,不能重复下棋。

3.每次下棋后,需要扫描谁赢了

*/

gb.printBoard();

System.out.println("请输入您下棋的座标,应以x,y的格式:");

}

}

}

public class Num2Rmb

{

private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" ,

"伍" , "陆" , "柒" , "捌" , "玖"};

private String[] unitArr = {"十" , "百" , "千","万","十万","百万"};

/**

* 把一个四位的数字字符串变成汉字字符串

* @param numStr 需要被转换的四位的数字字符串

* @return 四位的数字字符串被转换成的汉字字符串。

*/

private String toHanStr(String numStr)

{

String result = "";

int numLen = numStr.length();

//依次遍历数字字符串的每一位数字

for (int i = 0 ; i < numLen ; i++ )

{

//把char型数字转换成的int型数字,因为它们的ASCII码值恰好相差48

//因此把char型数字减去48得到int型数字,例如'4'被转换成4。

int num = numStr.charAt(i) - 48;

//如果不是最后一位数字,而且数字不是零,则需要添加单位(千、百、十)

if ( i != numLen - 1 && num != 0)

{

result += hanArr[num] + unitArr[numLen - 2 - i];

}

//否则不要添加单位

else

{

//上一个数是否为“零”,不为“零”时就添加

if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')

continue;

result += hanArr[num];

}

}

//只有个位数,直接返回

if(result.length()==1)

return result;

int index=result.length()-1;

while(result.charAt(index)=='零'){

index--;

}

if(index!=result.length()-1)

return result.substring(0,index+1);

else {

return result;

}

}

public static void main(String[] args)

{

Num2Rmb nr = new Num2Rmb();

System.out.println("只支持整数(0~百万)");

//测试把一个四位的数字字符串变成汉字字符串

System.out.println(nr.toHanStr("123"));

System.out.println(nr.toHanStr("105"));

System.out.println(nr.toHanStr("1000"));

System.out.println(nr.toHanStr("1100"));

System.out.println(nr.toHanStr("1110"));

}

}

源代码:

import java.util.Scanner;

public class Bigint {

private int [] big = new int[20];

public void init()

{

for(int i = 0; i < 20; i++)

big[i] = 0;

}

public void input(String s)

{

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

big[s.length() - i - 1] = s.charAt(i) - '0';

}

public void show()

{

int al = 0;

for(int i = 19;i >= 0 ; i--)

if(big[i] != 0)

{

al = i;

break;

}

for(int j = 0;j <= al; j++)

System.out.print(big[al - j]);

}

public boolean bigger(Bigint a,Bigint b)

{

int al = 0,bl = 0;

for(int i = 19;i >= 0 ; i--)

if(a.big[i] != 0)

{

al = i;

break;

}

for(int i = 19;i >= 0 ; i--)

if(b.big[i] != 0)

{

bl = i;

break;

}

if(al > bl)

return true;

else if(al < bl)

return false;

else

{

if(a.big[al] > b.big[al])

return true;

else if(a.big[al] < b.big[al])

return false;

else

{

while(a.big[al] == b.big[al])

{

if(al != 0)

{

if(a.big[al - 1] > b.big[al - 1])

return true;

else if(a.big[al - 1] < b.big[al - 1])

return false;

else

al --;

}

else

return true;

}

}

}

return false;

}

public void add(Bigint a,Bigint b)

{

Bigint result = new Bigint();

result.init();

if(a.bigger(a, b))

{

int l = 0,temp;

for(int i = 19;i >= 0 ; i--)

if(a.big[i] != 0)

{

l = i;

break;

}

l++;

for(int j = 0;j < l; j++)

{

temp = a.big[j] + b.big[j];

if(temp > 9)

{

result.big[j] = (temp - 10);

result.big[j + 1] += 1;

}

else

result.big[j] = temp;

}

}

else

{

int l = 0,temp;

for(int i = 19;i >= 0 ; i--)

if(b.big[i] != 0)

{

l = i;

break;

}

l++;

for(int j = 0;j < l; j++)

{

temp = a.big[j] + b.big[j];

if(temp > 9)

{

result.big[j] = (temp - 10);

result.big[j + 1] += 1;

}

else

result.big[j] = temp;

}

}

result.show();

System.out.print("\n");

}

public void sub(Bigint a,Bigint b)

{

Bigint result = new Bigint();

result.init();

if(a.bigger(a, b))

{

int l = 0,temp;

for(int i = 19;i >= 0 ; i--)

if(a.big[i] != 0)

{

l = i;

break;

}

for(int j = 0;j < l; j++)

{

temp = a.big[j] - b.big[j];

if(temp < 0)

{

result.big[j] = (temp + 10);

result.big[j + 1] -= 1;

}

else

result.big[j] = temp;

}

}

else

{

System.out.print("-");

int l = 0,temp;

for(int i = 19;i >= 0 ; i--)

if(b.big[i] != 0)

{

l = i;

break;

}

for(int j = 0;j < l; j++)

{

temp = a.big[j] - b.big[j];

if(temp < 0)

{

result.big[j] = (temp + 10);

result.big[j + 1] -= 1;

}

else

result.big[j] = temp;

}

}

result.show();

System.out.print("\n");

}

public static void main(String[] args) {

Bigint b1 = new Bigint();

b1.init();

Bigint b2 = new Bigint();

b2.init();

System.out.println("请输入两个正的大数:");

Scanner s = new Scanner(System.in);

String str1 = s.next();

String str2 = s.next();

s.close();

b1.input(str1);

b2.input(str2);

System.out.print(str1 + "+" + str2 + "=");

b1.add(b1, b2);

System.out.print(str1 + "-" + str2 + "=");

b1.sub(b1, b2);

}

}

 

程序设计思路:首先产生十个随机数,然后赋值到一个数组中,计算这十个数的和,然后把这十个数以及计算的和结果以消息框的形式显示出去。

 
   

流程图:

源程序:

/*

* 对数组中的元素赋上随机数,然后求和,以消息框的形式输出

* 作者:徐浩军   日期;2016.11.3  天气:还可以

*/

package 数组;

import java.util.Arrays;

import javax.swing.*;

public class Add {

public static void main(String[] args) {

// TODO Auto-generated method stub

int a[]=new int [10];  //创建一个整数型数组,长度为10

int sum=0; //和

String output="";        //用于输出

output+="数组中的元素有:\n";

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

a[i]=(int)(Math.random()*50+1);   //为数组中的每一个元素赋一个随机数

sum+=a[i];

}

output+=Arrays.toString(a);   //输出数组中的元素

output+="\n求和的结果是:   "+sum;        //把运算结果输出去

JTextArea textarea=new JTextArea(5,10);     //创建一个文本区域,用于显示结果

textarea.setText(output);

//以消息框的形式显示结果

JOptionPane.showMessageDialog(null,textarea,"显示数组元素以及求和结果",JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}

}

程序结果截图:

06Java数组的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  4. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

随机推荐

  1. cs11_c++_lab3

    Matrix.hh class Matrix { int row; int col; int *p; void copy(const Matrix &m); void clearup(); p ...

  2. 艺术品照片融合到背景墙上效果及DEMO

    演示地址: 功能:图片按照角度增加阴影,比较复杂的功能就是当墙面是不规则的时候,贴的艺术品必须按照墙面的角度进行变形处理.

  3. 几种方法实现ajax请求内容时使用浏览器后退和前进功能

    ajax是一个非常好玩的小东西,不过用起来也会存在一些问题. 我们可以利用ajax进行无刷新改变文档内容,但是没办法去修改URL,即无法实现浏览器的前进与后退.书签的收藏功能. 利用location的 ...

  4. Generate transparent shape on image

    Here is an example code to generate transparent shape on image. Need to pay attention can not use cv ...

  5. Office OneNote 自动打开问题

    你可能遇到如下问题: 在输入某些文本的时候,突然onenote自动打开 切换输入法,onenote自动打开 使用某些快捷键,onenote自动打开 最近我就遇到类似诡异的问题,使用了各种搜索引擎,都没 ...

  6. Python发送邮件(支持中文)

    # -*- coding: utf-8 -*- from email.header import Header from email.mime.text import MIMEText import ...

  7. php中的魔术方法

    __construct 构造器是一个魔术方法,当对象被实例化时它会被调用.在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承.如果我们 ...

  8. 锋利的js之验证身份证号

    我们在做互联网网站时,注册个人资料时,经常要用到身份证号,我们需要对身份证进验证,不然别人随便输个号码就通过,让你感觉这个网站做得很shit. 身份证号是有规则的. 结构和形式 1.号码的结构  公民 ...

  9. 【初学者教程】在电脑上安装Python,写第一个程序

    欢迎来到Python的世界 1.存在Python 2和Python 3两个版本,我该用哪个?如果书是关于2的,下载2:如果书是关于3的,就下载3.建议用Python 3,不过用2也是可以的. 2.下载 ...

  10. python3.5------购物车

    笔者:QQ:   360212316 逻辑图 程序代码 # /usr/bin/env python # -*- coding: utf-8 -*- product_list = [ ["ip ...