java 数组实现五子棋小游戏和阿拉伯数字转大写中文数字

package com.feng.test.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * <br>数组实现五子棋小游戏</br>
 * <br>没完善</br>
 * @author Lenovo *
 */
public class TestArrayGobang {
	//定义棋盘的大小
	private  static  int BOARD_SIZE = 15;
	//定义一个二维数组来充当棋盘
	private  String[][] board;
	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 IOException{
		TestArrayGobang gb = new TestArrayGobang();
		gb.initBoard();
		gb.printBoard();
		System.out.println("请输入您下棋的坐标,应以x,y的格式:");
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String inputStr = null;
		while((inputStr = br.readLine()) != null){
			String [] posStrArr = inputStr.split(",");
			int xPos = Integer.parseInt(posStrArr[0]);
			int yPos = Integer.parseInt(posStrArr[1]);
			gb.board[yPos - 1][xPos - 1] = "*";	
			gb.printBoard();
			System.out.println("请输入您下棋的坐标,应以x,y的格式:");
		}
	}
}

package com.feng.test.test;

import java.util.Arrays;

/**
 * 
 * <br>实现阿拉伯数字,转大写中文数字</br>
 * <br>没有完善</br>
 * @author Lenovo
 *
 */
public class TestArrayNum2Rmb {
	private String[] hanArr = {"零","壹","贰","叄","肆","伍","陆","柒","捌","玖"};
	private String[] unitArr = {"十","百","千"};
	
	/**
	 * <br>把一个浮点数分解成整数部分和小数部分字符串</br>
	 * @param num 需要被分解的浮点数
	 * @return String[] 分解出来的整数部分和小数部分,第一个数组元素是整数部分,第二个是小数部分
	 */
	private String[] divide(double num){
		//将一个浮点数强制类型转换为long型,即得到它的整数部分
		long zheng = (long)num;
		//浮点数减去整数部分,得到小数部分,小数部分乘以100后取得2位小数
		long xiao = Math.round((num - zheng)*100);//四舍五入	
		//下面用了两种方法把整数转换为字符串
		return new String[]{zheng+"",String.valueOf(xiao)};
	}
	
	/**
	 * <br>把一个四位的数字字符串变成汉字字符串</br>
	 * @param numStr 需要被转换的四位的数字字符串
	 * @return String 汉字字符串
	 */
	private String toHanStr(String numStr){
		String result = "";
		int numLen = numStr.length();
		for(int i = 0;i < numLen;i++){
			//把char型数字转换成int型数字,它们的ASCII码值恰好相差48,‘4’转换成4			
			int num = numStr.charAt(i) - 48;
			//如果不是最后一位数字,而且数字不是零,则需要添加单位(千、百、十)
			if(i != numLen - 1 && num != 0){
				result += hanArr[num] + unitArr[numLen - 2 -i]; 
			}else{
				result += hanArr[num]; 
			}			
		}		
		return result;	
	}	
	
	public static void main(String[] args){
		TestArrayNum2Rmb nr = new TestArrayNum2Rmb();
		//把一个浮点数分成整数部分和小数部分
		System.out.println(Arrays.toString(nr.divide(23456777.545454)));//[23456777, 55]
		//把一个四位的数字字符串变成汉字字符串
		System.out.println(nr.toHanStr("6090"));//陆千壹百零玖
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值