一维数组

 //静态初始化一个数组,不能指定数组长度
int[] arr1=new int[]{1,2,3,4,5};
//可简写为 int[] arr1={1,2,3,4,5}; //动态初始化一个数组,先指定数组长度,以后再逐个赋值
int[] arr2=new int[5];
arr2[0]=1; //也可以先声明,再初始化
//int[] arr3;
//arr3=....... //数组长度
System.out.println("数组arr1的长度:"+arr1.length); /*
foreach循环可以遍历数组、集合,但只能访问元素的值,不能修改。
数组的元素类型必须相同,集合的元素类型可以不同
临时变量表示当前元素
*/
for(int i:arr1){
System.out.println(i);
}

二维数组

        //每行的元素个数可不同

        //静态初始化一个二维数组,每行都是一个一维数组
int[][] arr1=new int[][]{
{1,2},
{1,2,3},
{1,2,3,4,5}
}; //动态初始化一个二维数组,只需指定行数,列数可缺省,也可写上,以后再逐个元素赋值
int[][] arr2=new int[3][]; //同样可以先声明,再初始化
//int[][] arr3;
//arr3=.....

JDK8自带的Arrays类

JDK8自带的Arrays类,提供了大量操作数组的方法,包括索引、排序、比较、赋值、复制等,均为静态方法。
以parallel开头的方法和缺少此前缀的方法效果完全相同,只是parallel开头的方法利用CPU的并行提高了效率,速度更快
View -> Quick Documentation 查看方法说明的快捷键,IDEA为Ctrl+Q

        int[] arr1={1,3,2,5,4};

        //复制
int[] arr2=Arrays.copyOf(arr1,arr1.length); //二分搜索,第二个参数是要搜索的值,返回的索引可能是负数——倒着搜索
System.out.println(Arrays.binarySearch(arr1,2)); //排序
Arrays.sort(arr1);
for(int i:arr1){
System.out.print(i+" ");
} System.out.println(); //并行排序
Arrays.parallelSort(arr2);
for(int i:arr2){
System.out.print(i+" ");
} System.out.println();

数组实例——将阿拉伯数字转换为最大写

将阿拉伯数字转换为最大写,比如1234转换为壹仟贰佰叁拾肆。

 package my_package;

 public class Transform {
private String[] arr1={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
private String[] arr2={"拾","佰","仟","万"}; public static void main(String[] args) {
Transform t=new Transform();
System.out.println(t.transform(12345));
} public StringBuffer transform(int num){
String str=Integer.toString(num);
int length=str.length();
StringBuffer result=new StringBuffer();
//遍历字符串的每一个字符
for(int i=0;i<length;i++){
//char型数值-相应的阿拉伯数字=48,ASCII码值相差48。比如'3'-3=48
int n=str.charAt(i)-48;
//刚好是对应的
result.append(arr1[n]); //不是最后一位,且不为0,就加单位
if(i!=length-1 && n!=0){
result.append(arr2[length-i-2]);
} }
return result;
} }

以上代码只能实现 万 及以下 的转换。


数组实例——实现棋盘落子

五子棋、连连看、俄罗斯方块、扫雷等常见小游戏,都可以通过二维数组实现。

棋盘落子效果图:

源码:

package my_package;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class Gobang {
//定义棋盘大小为15*15
private static int BOARD_SIZE=15;
//定义一个二维数组来充当棋盘
private static String[][] board; //初始化棋盘数组
public void initBoard(){
board=new String[BOARD_SIZE][BOARD_SIZE];
//把每个元素赋为“十”
for(int i=0;i<15;i++){
for(int j=0;j<15;j++){
board[i][j]="十";
}
}
} //在控制台打印棋盘
public void printBoard(){
for(int i=0;i<15;i++){
for(int j=0;j<15;j++){
System.out.print(board[i][j]);
}
//打印完一行后换行
System.out.print("\n");
}
} public static void main(String[] args) throws IOException {
Gobang gb=new Gobang();
gb.initBoard();
gb.printBoard(); //接收控制台输入棋盘坐标
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=null;
System.out.println("请输入落子点的坐标:");
while((str=br.readLine()) != null){
String[] arr=str.split(",");
int x=Integer.parseInt(arr[0]);
int y=Integer.parseInt(arr[1]); //需要先判断该点是否已有子,若已有子,则不能再落子。此处省略 board[x-1][y-1]="●";
//刷新
gb.printBoard();; //每次落子后需判断输赢,进行4次循环扫描,横、竖、左斜、右斜,看是否有5子连着,没有就接着下。此处省略 System.out.println("请输入落子点的坐标:");
}
} }

Java 数组实例——将阿拉伯数字转换为最大写的更多相关文章

  1. Java 阿拉伯数字转换为中文大写数字

    Java 阿拉伯数字转换为中文大写数字 /** * <html> * <body> * <P> Copyright 1994 JsonInternational&l ...

  2. JAVA 数组实例-求学生平均成绩,与计算数组的长度

    实例: 知识点:数组名.length是计算数组的长度 import java.util.*; //求学生平均分成绩 public class Test{ public static void main ...

  3. JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值

    实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System. ...

  4. Java 数组实例——实现棋盘落子

    五子棋.连连看.俄罗斯方块.扫雷等常见小游戏,都可以通过二维数组实现. 棋盘落子效果图: 源码: package my_package; import java.io.BufferedReader; ...

  5. 把Java数组转换为List时的注意事项

    本文由 ImportNew - 飘扬叶 翻译自 mlangc.欢迎加入翻译小组.转载请见文末要求. 不幸的是并不是每件事都尽如人意.举个例子,现在将一个Java数组转换为List.当然,我们可以使用A ...

  6. 对java数组的一些理解

    刚开始学习Java的时候一直搞不清除获取数组的长度是用length()还是length,现在不妨来深入了解一下数组的真实面目. 我们不妨来看一下数组的源码,诶,数组的类名叫什么?我们声明一个int数组 ...

  7. Java - 数组解析

    java提高篇(十八)-----数组之一:认识JAVA数组 一.什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸 ...

  8. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  9. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

随机推荐

  1. 动态sql和分页

    Mybatis动态SQL If.trim.foreach BookMapper /** * 如果形参要在mapper.xml中使用需要加上面注解 * map.name: zs age: 12 * @p ...

  2. 食物链【NOI2001】(信息学奥赛一本通 1390)

    [题目描述] 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种 ...

  3. 【计算机视觉】ImageNet介绍

    ImageNet介绍 ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库.是美国斯坦福的计算机科学家,模拟人类的识别系统建立的.能够从图片识别物体.ImageNet是一 ...

  4. c# winform button文字偏了

    winform button文字偏了,解决方案来自 疯狂青蛙: http://www.cnblogs.com/cadlife 要用这个属性

  5. logstash设置开机自启动

    本篇文件前提是在centos7.6上使用rpm包安装的logstash,添加systemd方式启动. #默认为rpm包安装,进行执行目录 cd /usr/share/logstash/bin/ #系统 ...

  6. windows x64安装与测试redis

    说明:安装与测试的系统为windows X64: 1.下载redis:https://github.com/microsoftarchive/redis/releases 2.解压Redis-x64- ...

  7. storm并行

    Storm并行度 wordcount 统计job代码 public class WordCountTopology { private static final String SENTENCE_SPO ...

  8. win10 .net framework 3.5 离线安装 不需要外网

    win 10如果安装系统时没有安装.net 3.5 那么在以后安装时就必须联网. win10 .net framework 3.5 离线安装工具: 链接: https://pan.baidu.com/ ...

  9. 管道通信——FIFO的代码实现

    一.用到的函数 umask         linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限.         文件的访问允许权限共有9种,分别是 ...

  10. Mysql 数据库 表中列的操作

    [1]Mysql数据库中表的列操作 Mysql中关于表中列的操作集语句: -- [1]增加一列 ) DEFAULT NULL COMMENT '目的码区号'; -- [2]增加一列,在dnis_are ...