LeetCode刷题

1.汉字数字

import java.util.Scanner;

//汉字数字
/**
 * 
 * 1.填入人民币金额的小写阿拉伯数字,例如1688 转换成汉字 壹仟陆佰捌拾捌元。 要求:识别到万,不处理小数
 * 零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿。
 * 
 * @author admin
 *
 */
public class Homework1 {

	// 9999
	// 玖仟玖佰玖拾玖

	public static void main(String[] args) {
		// 写写代码的时候,要思路清晰(要知道自己在干什么事情)
		// 一定要把整个题目的步骤细分
		// 第一步要做什么事情
		// 输入金额:
		// Scanner 用户输入。
		Scanner scanner = new Scanner(System.in);

		System.out.println("请输入你要转换的金额:");

		// 第二步要做什么事情
		// 获取用户输入的内容
		int i = scanner.nextInt();// 不处理小数

		// 第三步要做什么事情
		// 准备转换文字
		// 9-玖,8-捌...
		String[] shuzi = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };// 就是下标对应,数字按照顺序排列
		// 定义一个单位的数组
		String[] danwei = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "十" };

		// 第四步,怎么把9999转为汉字玖玖玖玖
		// 要把9999拆分成一个个的数字

		// 拆字,一般都是拆字符串,应该要先把int转为String
		String string = i + "";// 无论什么类型+""结果都是字符串,因为""就是字符串,+了之后就是强转
		// Stinrg.valueOf(i)//静态方法转换i

		// 进行拆字,toCharArray();拆分成一个个字符,返回一个char数组
		char[] cs = string.toCharArray();
//		for (char c : cs) { 验证
//			System.out.println(c);
//		}

		// 第五步,开始转换数字
		String printStr = "";
		for (int j = 0; j < cs.length; j++) {
//			System.out.println(shuzi[(int)cs[j]-49]);
//			shuzi[];//这里出现一个问题,数组的下标需要使用int类型,cs的数组类型是char
			// 转换类型,把char类型抓换为int
//			cahr 类型转换为int,根据ASCII
//			char类型是0的话,int,就是48
//			char类型是1的话,int,就是49,相差48
			int index = cs[j] - 48;
			if (shuzi[index] == "壹" && cs.length == 6) {
				shuzi[index] = "";
				printStr = printStr + shuzi[index];
//				System.out.print(shuzi[index]);
			} else {
				printStr = printStr + shuzi[index];
//				System.out.print(shuzi[index]);// 数字拿到了,身下的就是单位
			}

			// 9999--玖仟玖佰玖拾玖
			// 数字长度,就相当于我们的单位
			printStr = printStr + danwei[cs.length - j - 1];
//			System.out.print(danwei[cs.length - j - 1]);
			// 1688-- 去零 -100200 120000思考。

		}
//		System.out.println(printStr.replaceAll("(.*)google(.*)", "runoob"));
//		System.out.println(printStr);

	}

}

2.模拟斗地主发牌

import java.util.Random;

/**
 * 
 * 模拟斗地主发牌。
 * 
 * @author admin
 *
 */
public class Homework2 {
	public static void main(String[] args) {

		// 模拟斗地主发牌
		// 第1步
		// 先得有一副牌
		String[] colors = { "♠", "♥", "♣", "♦" };

		// 牌面
		String[] numbers = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };

		// 定义王2
		String[] Kings = { "大王", "小王" };

		// 定义一份牌,要用集合?
		String[] pooker = new String[colors.length * numbers.length + Kings.length];

		int index = 0;// 定义一个poker下标
		for (int i = 0; i < colors.length; i++) {
			for (int j = 0; j < numbers.length; j++) {
				pooker[index] = colors[i] + numbers[j];
				index++;
			}
		}

		pooker[pooker.length - 1] = Kings[0];
		pooker[pooker.length - 2] = Kings[1];

		for (int i = 0; i < pooker.length; i++) {
			System.out.println(pooker[i]);
		}
		// 第2步
//		准备发牌
		// 首先打乱顺序、发给谁(有三个玩家,一个地主牌)
		String[] play1 = new String[17];// 一个玩家就有17张
		String[] play2 = new String[17];
		String[] play3 = new String[17];
		// 地主牌
		String[] dizhu = new String[3];

		// 第3步
		// 打乱顺序 随机下标就是随机发牌
		Random random = new Random();
		// 1号玩家17张
		for (int i = 0; i < 17; i++) {
			// 扑克牌的随机下标
			int j = random.nextInt(pooker.length);

			if (pooker[j] == null) {
				i--;// 重新再发一张
				continue;
			} else {
				play1[i] = pooker[j];
				pooker[j] = null;
			}

		}
		// 1号玩家17张
		for (int i = 0; i < 17; i++) {
			// 扑克牌的随机下标
			int j = random.nextInt(pooker.length);

			if (pooker[j] == null) {
				i--;// 重新再发一张
				continue;
			} else {
				play2[i] = pooker[j];
				pooker[j] = null;
			}

		}
		// 1号玩家17张
		for (int i = 0; i < 17; i++) {
			// 扑克牌的随机下标
			int j = random.nextInt(pooker.length);

			if (pooker[j] == null) {
				i--;// 重新再发一张
				continue;
			} else {
				play3[i] = pooker[j];
				pooker[j] = null;
			}

		}

		// 发地主牌三张
		for (int i = 0; i < 3; i++) {
			// 扑克牌的随机下标
			int j = random.nextInt(pooker.length);

			if (pooker[j] == null) {
				i--;// 重新再发一张
				continue;
			} else {
				dizhu[i] = pooker[j];
				pooker[j] = null;
			}

		}

		// 第4步 输出
		for (int i = 0; i < play1.length; i++) {
			System.out.print(play1[i] + "\t");
		}
		System.out.println();
		for (int i = 0; i < play2.length; i++) {
			System.out.print(play2[i] + "\t");
		}
		System.out.println();
		for (int i = 0; i < play3.length; i++) {
			System.out.print(play3[i] + "\t");
		}
		System.out.println();
		for (int i = 0; i < dizhu.length; i++) {
			System.out.print(dizhu[i] + "\t");
		}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值