Java 数组实例——将阿拉伯数字转换为最大写
一维数组
- //静态初始化一个数组,不能指定数组长度
- 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 数组实例——将阿拉伯数字转换为最大写的更多相关文章
- Java 阿拉伯数字转换为中文大写数字
Java 阿拉伯数字转换为中文大写数字 /** * <html> * <body> * <P> Copyright 1994 JsonInternational&l ...
- JAVA 数组实例-求学生平均成绩,与计算数组的长度
实例: 知识点:数组名.length是计算数组的长度 import java.util.*; //求学生平均分成绩 public class Test{ public static void main ...
- JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值
实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System. ...
- Java 数组实例——实现棋盘落子
五子棋.连连看.俄罗斯方块.扫雷等常见小游戏,都可以通过二维数组实现. 棋盘落子效果图: 源码: package my_package; import java.io.BufferedReader; ...
- 把Java数组转换为List时的注意事项
本文由 ImportNew - 飘扬叶 翻译自 mlangc.欢迎加入翻译小组.转载请见文末要求. 不幸的是并不是每件事都尽如人意.举个例子,现在将一个Java数组转换为List.当然,我们可以使用A ...
- 对java数组的一些理解
刚开始学习Java的时候一直搞不清除获取数组的长度是用length()还是length,现在不妨来深入了解一下数组的真实面目. 我们不妨来看一下数组的源码,诶,数组的类名叫什么?我们声明一个int数组 ...
- Java - 数组解析
java提高篇(十八)-----数组之一:认识JAVA数组 一.什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸 ...
- Java 数组
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...
- 第5章 Java数组
1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...
随机推荐
- js面向对象杂谈
**万丈高楼平地起** 1. 通过命名规范创建具有私有属性的对象: 以__开头的对象为私有对象,但是实际是能访问到的. 2. 通过自执行函数中,return出来一个对象,return旁边的地方都可以写 ...
- 第02组 Alpha冲刺(1/4)
队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:进行组员分工 GitHub签入记录 接下来的计划:构思游戏实现 还剩下哪些任务:敲代码 燃尽图 遇到的困难:任务分配的不及时,导致很 ...
- Linux性能优化实战学习笔记:第六讲1
一.环境准备 1.安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker.sysstat.perf等工具 [root@luoahong ~]# docker -v Docker ...
- 转载:tensorflow保存训练后的模型
训练完一个模型后,为了以后重复使用,通常我们需要对模型的结果进行保存.如果用Tensorflow去实现神经网络,所要保存的就是神经网络中的各项权重值.建议可以使用Saver类保存和加载模型的结果. 1 ...
- awk简单应用
偷懒之人,必定会想方设法的走捷径.如果你想结束多个ID进程,有的人可能会说pkill 和killall.但是有时候不知道为啥 不生效啊 = =! 知道的可以告诉我.刚好最近在学awk 下面命令调用系统 ...
- 1-7docke的网络模式
1.Bridge模式 bridge 模式是 docker 的默认⽹络模式,不写 –net 参数,就是 bridge 模式.比如使⽤ docker run - p 时 工作模式从网上找了一个,如下 例子 ...
- 【操作系统之十二】分支预测、CPU亲和性(affinity)
一.分支预测 当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕 ...
- SpringMvc通过controller上传文件代码示例
上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...
- Maven 教程(16)— pom.xml 文件详解
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79733577 <project xmlns="http://ma ...
- Windows进程间各种通信方式浅谈(转)
转自 https://blog.csdn.net/microzone/article/details/7044266 权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原 ...