产生随机数——起名神器

package com.mao;

import java.io.Serializable;

import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Set;
/**
2019年8月15日下午6:13:02
*/
public class RandomUtils {
	private static final Random random=new Random();
	/**
	 * 得到字母数字序列
	 * 
	 * @param len
	 *            长度
	 * @param type
	 *            类型 1、大写字母,2、小写字母,3、数字
	 * @return
	 */
	public static String getRandomChar(int len, int type) {
		StringBuffer result = new StringBuffer();
		switch (type) {
		case 1:
			for (int i = 0; i < len; i++) {
				result.append((char) (random.nextInt(26) + 65));
			}
			break;
		case 2:
			for (int i = 0; i < len; i++) {
				result.append((char) (random.nextInt(26) + 97));
			}
		case 3:
			for (int i = 0; i < len; i++) {
				result.append(random.nextInt(10));
			}
			break;
		default:
			return null;
		}
		return result.toString();
	}

	/**
	 * 得到不重复的字母数字序列
	 * 
	 * @param len
	 *            长度
	 * @param type
	 *            类型 1、大写字母,2、小写字母,3、数字
	 * @return
	 */
	public static String getRandomCharNoRepeat(int len, int type) {
		StringBuffer result = new StringBuffer();
		Set<Serializable> set = new LinkedHashSet<Serializable>();
		boolean b = true;
		switch (type) {
		case 1:
			for (int i = 0; i < len; i++) {
				b = set.add((char) (random.nextInt(26) + 65));
				if (!b) {
					i--;
				}
			}
			break;
		case 2:
			for (int i = 0; i < len; i++) {
				set.add((char) (random.nextInt(26) + 97));
				b = set.add((char) (random.nextInt(26) + 65));
				if (!b) {
					i--;
				}
			}
		case 3:
			if (len >= 10) {
				return "0123456789";
			}
			for (int i = 0; i < len; i++) {
				b = set.add(random.nextInt(10));
				if (!b) {
					i--;
				}
			}
			break;
		default:
			return null;
		}
		for (Serializable s : set) {
			result.append(s);
		}
		return result.toString();
	}
	/**
	 * 获取[small,big]间的数字
	 * @param small
	 * @param big
	 * @return
	 */
	public static int getNumber(int small,int big) {
		int cha = big-small;
		if(cha>0) {
			return random.nextInt(cha+1)+small;
		}
		if(cha==0) {
			return small;
		}
		return -Integer.MAX_VALUE;
	}

	public static String getRandomSC(int len) {
		StringBuffer result = new StringBuffer();
		String[] rBase = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
		for (int i = 0; i < len; i++) {
			// 生成第一位区码
			int r1 = random.nextInt(3) + 11;
			String str_r1 = rBase[r1];
			// 生成第二位区码
			int r2 = r1 == 13 ? random.nextInt(7) : random.nextInt(16);
			String str_r2 = rBase[r2];
			// 生成第一位位码
			int r3 = random.nextInt(6) + 10;
			String str_r3 = rBase[r3];
			// 生成第二位位码
			int r4;
			if (r3 == 10) {
				r4 = random.nextInt(15) + 1;
			} else if (r3 == 15) {
				r4 = random.nextInt(15);
			} else {
				r4 = random.nextInt(16);
			}
			String str_r4 = rBase[r4];
			// 将生成的机内码转换为汉字
			byte[] bytes = new byte[2];
			// 将生成的区码保存到字节数组的第一个元素中
			String str_12 = str_r1 + str_r2;
			bytes[0] = (byte) Integer.parseInt(str_12, 16);
			// 将生成的位码保存到字节数组的第二个元素中
			bytes[1] = (byte) Integer.parseInt(str_r3 + str_r4, 16);
			result.append(new String(bytes));
		}
		return result.toString();
	}
	
	public static String getSex() {
		return random.nextBoolean()?"男":"女";
	}

	public static String getProvince() {
		String provinces = "京 津 沪 渝 晋 鲁 贛 陕 琼 闽 浙 黑 辽 吉 内蒙古 冀 苏 皖 豫 湘 粤 桂 川 云 港 澳 台 青 宁 新 甘 藏 鄂";
		String[] s = provinces.split(" ");
		return s[random.nextInt(s.length)];
	}

	public static String getXingshi() {
		String xing = "赵 钱 孙 李 周 吴 郑 王 冯 陈 楮 卫 蒋 沈 韩 杨 朱 秦 尤 许 何 吕 施 张 孔 曹 严 华 "
				+ "金 魏 陶 姜 戚 谢 邹 喻 柏 水 窦 章 云 苏 潘 葛 奚 范 彭 郎 鲁 韦 昌 马 苗 凤 花 方 俞 任 "
				+ "袁 柳 酆 鲍 史 唐 费 廉 岑 薛 雷 贺 倪 汤 滕 殷 罗 毕 郝 邬 安 常 乐 于 时 傅 皮 卞 齐 康 "
				+ "伍 余 元 卜 顾 孟 平 黄 和 穆 萧 尹 姚 邵 湛 汪 祁 毛 禹 狄 米 贝 明 臧 计 伏 成 戴 谈 宋 "
				+ "茅 庞 熊 纪 舒 屈 项 祝 董 梁 杜 阮 蓝 闽 席 季 麻 强 贾 路 娄 危 江 童 颜 郭 梅 盛 林 刁 "
				+ "锺 徐 丘 骆 高 夏 蔡 田 樊 胡 凌 霍 虞 万 支 柯 昝 管 卢 莫 经 房 裘 缪 干 解 应 宗 丁 宣 "
				+ "贲 邓 郁 单 杭 洪 包 诸 左 石 崔 吉 钮 龚 程 嵇 邢 滑 裴 陆 荣 翁 荀 羊 於 惠 甄 麹 家 封 "
				+ "芮 羿 储 靳 汲 邴 糜 松 井 段 富 巫 乌 焦 巴 弓 牧 隗 山 谷 车 侯 宓 蓬 全 郗 班 仰 秋 仲 "
				+ "伊 宫宁 仇 栾 暴 甘 斜 厉 戎 祖 武 符 刘 景 詹 束 龙 叶 幸 司 韶 郜 黎 蓟 薄 印 宿 白 怀 "
				+ "蒲 邰 从 鄂 索 咸 籍 赖 卓 蔺 屠 蒙 池 乔 阴 郁 胥 能 苍 双 闻 莘 党 翟 谭 贡 劳 逄 姬 申 "
				+ "扶 堵 冉 宰 郦 雍 郤 璩 桑 桂 濮 牛 寿 通 边 扈 燕 冀 郏 浦 尚 农 温 别 庄 晏 柴 瞿 阎 充 "
				+ "慕 连 茹 习 宦 艾 鱼 容 向 古 易 慎 戈 廖 庾 终 暨 居 衡 步 都 耿 满 弘 匡 国 文 寇 广 禄 "
				+ "阙 东 欧 殳 沃 利 蔚 越 夔 隆 师 巩 厍 聂 晁 勾 敖 融 冷 訾 辛 阚 那 简 饶 空 曾 毋 沙 乜 "
				+ "养 鞠 须 丰 巢 关 蒯 相 查 后 荆 红 游 竺 权 逑 盖 益 桓 公 万俟 司马 上官 欧阳 夏侯 诸葛 "
				+ "闻人 东方 赫连 皇甫 尉迟 公羊 澹台 公冶 宗政 濮阳 淳于 单于 太叔 申屠 公孙 仲孙 轩辕 令狐 "
				+ "锺离 宇文 长孙 慕容 鲜于 闾丘 司徒 司空 丌官 司寇 仉 督 子车 颛孙 端木 巫马 公西 漆雕 乐正 "
				+ "壤驷 公良 拓拔 夹谷 宰父 谷梁 晋 楚 阎 法 汝 鄢 涂 钦 段干 百里 东郭 南门 呼延 归 海 羊舌 微生 "
				+ "岳 帅 缑 亢 况 后 有 琴 梁丘 左丘 东门 西门 商 牟 佘 佴 伯 赏 南宫 墨 哈 谯 笪 年 爱 阳 佟";
		String[] s = xing.split(" ");
		return s[random.nextInt(s.length)];
	}
}

利用随机数起名真的是头一遭啊,
其实还有点意思,笑纳笑纳啊

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值