动手动脑:

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. JQ判断复选框是否选中

    方法一: if($('#checkbox').is(':checked')) {} 方法二:if ($('#checkbox').attr('checked')) {} 方法三:if ($(" ...

  2. LR12.53—第1课:构建Vuser脚本

    第1课:构建Vuser脚本 要生成系统上的负载,首先建立一个可以运行以模拟真实用户行为Vuser脚本.您使用VuGen创建和构建Vuser脚本. 在这一课中,你将涵盖以下主题: 介绍VuGen将 - ...

  3. 用world写blog

    一级目录 怎么写呢? 这个和markdown那个更加方便呢? 据说插入表格有问题 我试一试         二级目录 这个大小还不错 添加第三季目录呢 三级目录 添加目录必须要用鼠标么? #inclu ...

  4. 8、SQL Server 表分区

    什么是表分区?表分区其实就是将一个大表分成若干个小表.表分区可以从物理上将一个大表分成几个小表,但是逻辑上还是一个表.所以当执行插入.更新等操作的时候,不需要我们去判断应该插入或更新到哪个表中.只需要 ...

  5. 最全面的 C++ 资源、框架大全

    转载自   http://www.codeceo.com/article/cpp-resource-framework.html#0-tsina-1-99850-397232819ff9a47a7b7 ...

  6. 解决低版本chrome浏览器不支持es6 Array.find()

     if (!Array.prototype.find) {  Array.prototype.find = function(predicate) {    'use strict';    if ( ...

  7. 时间服务器:NTP 服务器

    15.1 关于时区与网络校时的通讯协议   使得每一部主机的时间同步化.   DHCP 客户端/服务器端所需要的租约时间限制. 网络侦测时所需要注意的时间点.刚刚谈到的登录文件分析功能.具有相关性的主 ...

  8. vba 笔记

    1.PlanWS5.Range("D5:E13").Copy   复制PlanWS5.Range("G5:H13").PasteSpecial Paste:=x ...

  9. CSS3常用选择器(三)

    在CSS3的选择器中,除了结构性伪类选择器外,还有一种UI元素状态伪类选择器.这些选择器的共同特征: 指定的样式只有当元素处于某种状态时才起作用,在默认状态下不起作用. 1.hover.focus.a ...

  10. 《IT蓝豹》PlayNewsStandDemo资讯类新闻客户端框架

    PlayNewsStandDemo资讯类新闻客户端框架,支持tab滑动切换,当切换到最左边或者最后边的时候停止滑动 本例子切换tab的效果根据AccelerateDecelerateInterpola ...